mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-18 15:15:56 +08:00
HDFFV-10384 Add optional arg to enable-error-stack
This commit is contained in:
parent
9adb74e41b
commit
a77a08b02f
@ -43,7 +43,7 @@ unsigned packed_bits_num; /* number of packed bits to display */
|
||||
unsigned packed_data_offset; /* offset of packed bits to display */
|
||||
unsigned packed_data_length; /* length of packed bits to display */
|
||||
unsigned long long packed_data_mask; /* mask in which packed bits to display */
|
||||
int enable_error_stack= FALSE; /* re-enable error stack */
|
||||
int enable_error_stack = 0; /* re-enable error stack; disable=0 enable=1 */
|
||||
|
||||
/* sort parameters */
|
||||
H5_index_t sort_by = H5_INDEX_NAME; /*sort_by [creation_order | name] */
|
||||
@ -548,9 +548,15 @@ h5tools_fopen(const char *fname, unsigned flags, hid_t fapl, const char *driver,
|
||||
if ((my_fapl = h5tools_get_fapl(fapl, driver, &drivernum)) < 0)
|
||||
goto done;
|
||||
|
||||
H5E_BEGIN_TRY {
|
||||
/* allow error stack display if enable-error-stack has optional arg number */
|
||||
if (enable_error_stack > 1) {
|
||||
fid = H5Fopen(fname, flags, my_fapl);
|
||||
} H5E_END_TRY;
|
||||
}
|
||||
else {
|
||||
H5E_BEGIN_TRY {
|
||||
fid = H5Fopen(fname, flags, my_fapl);
|
||||
} H5E_END_TRY;
|
||||
}
|
||||
|
||||
if (fid == FAIL)
|
||||
goto done;
|
||||
@ -563,9 +569,15 @@ h5tools_fopen(const char *fname, unsigned flags, hid_t fapl, const char *driver,
|
||||
if((my_fapl = h5tools_get_fapl(fapl, drivernames[drivernum], NULL)) < 0)
|
||||
goto done;
|
||||
|
||||
H5E_BEGIN_TRY {
|
||||
/* allow error stack display if enable-error-stack has optional arg number */
|
||||
if (enable_error_stack > 1) {
|
||||
fid = H5Fopen(fname, flags, my_fapl);
|
||||
} H5E_END_TRY;
|
||||
}
|
||||
else {
|
||||
H5E_BEGIN_TRY {
|
||||
fid = H5Fopen(fname, flags, my_fapl);
|
||||
} H5E_END_TRY;
|
||||
}
|
||||
|
||||
if (fid != FAIL)
|
||||
break;
|
||||
|
@ -573,7 +573,7 @@ H5TOOLS_DLLVAR H5_index_t sort_by; /*sort_by [creation_order | name] *
|
||||
H5TOOLS_DLLVAR H5_iter_order_t sort_order; /*sort_order [ascending | descending] */
|
||||
|
||||
/* things to display or which are set via command line parameters */
|
||||
H5TOOLS_DLLVAR int enable_error_stack; /* re-enable error stack */
|
||||
H5TOOLS_DLLVAR int enable_error_stack; /* re-enable error stack; disable=0 enable=1 */
|
||||
|
||||
/* Strings for output */
|
||||
#define H5_TOOLS_GROUP "GROUP"
|
||||
|
@ -293,7 +293,7 @@ main (int argc, const char *argv[])
|
||||
break;
|
||||
|
||||
case 'E':
|
||||
enable_error_stack = TRUE;
|
||||
enable_error_stack = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -330,7 +330,7 @@ main (int argc, const char *argv[])
|
||||
leave(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (enable_error_stack) {
|
||||
if (enable_error_stack > 0) {
|
||||
H5Eset_auto2(H5E_DEFAULT, func, edata);
|
||||
H5Eset_auto2(H5tools_ERR_STACK_g, tools_func, tools_edata);
|
||||
}
|
||||
|
@ -178,7 +178,7 @@ void parse_command_line(int argc,
|
||||
break;
|
||||
|
||||
case 'S':
|
||||
enable_error_stack = TRUE;
|
||||
enable_error_stack = 1;
|
||||
break;
|
||||
|
||||
case 'E':
|
||||
|
@ -100,7 +100,7 @@ int main(int argc, const char *argv[])
|
||||
*/
|
||||
parse_command_line(argc, argv, &fname1, &fname2, &objname1, &objname2, &opts);
|
||||
|
||||
if (enable_error_stack) {
|
||||
if (enable_error_stack > 0) {
|
||||
H5Eset_auto2(H5E_DEFAULT, func, edata);
|
||||
H5Eset_auto2(H5tools_ERR_STACK_g, tools_func, tools_edata);
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ struct handler_t {
|
||||
*/
|
||||
/* The following initialization makes use of C language cancatenating */
|
||||
/* "xxx" "yyy" into "xxxyyy". */
|
||||
static const char *s_opts = "hn*peyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o*b*F:s:S:A*q:z:m:RECM:O*N:vG:";
|
||||
static const char *s_opts = "hn*peyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o*b*F:s:S:A*q:z:m:RE*CM:O*N:vG:";
|
||||
static struct long_options l_opts[] = {
|
||||
{ "help", no_arg, 'h' },
|
||||
{ "hel", no_arg, 'h' },
|
||||
@ -181,7 +181,7 @@ static struct long_options l_opts[] = {
|
||||
{ "sort_order", require_arg, 'z' },
|
||||
{ "format", require_arg, 'm' },
|
||||
{ "region", no_arg, 'R' },
|
||||
{ "enable-error-stack", no_arg, 'E' },
|
||||
{ "enable-error-stack", optional_arg, 'E' },
|
||||
{ "packed-bits", require_arg, 'M' },
|
||||
{ "no-compact-subset", no_arg, 'C' },
|
||||
{ "ddl", optional_arg, 'O' },
|
||||
@ -191,7 +191,7 @@ static struct long_options l_opts[] = {
|
||||
{ NULL, 0, '\0' }
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: leave
|
||||
*
|
||||
@ -214,7 +214,7 @@ leave(int ret)
|
||||
HDexit(ret);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: usage
|
||||
*
|
||||
@ -366,7 +366,7 @@ usage(const char *prog)
|
||||
PRINTVALSTREAM(rawoutstream, "\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: table_list_add
|
||||
*
|
||||
@ -419,7 +419,7 @@ table_list_add(hid_t oid, unsigned long file_no)
|
||||
return((ssize_t) idx);
|
||||
} /* end table_list_add() */
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: table_list_visited
|
||||
*
|
||||
@ -449,7 +449,7 @@ table_list_visited(unsigned long file_no)
|
||||
return(-1);
|
||||
} /* end table_list_visited() */
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: table_list_free
|
||||
*
|
||||
@ -817,7 +817,7 @@ parse_mask_list(const char *h_list)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: free_handler
|
||||
*
|
||||
@ -865,7 +865,7 @@ free_handler(struct handler_t *hand, int len)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: parse_command_line
|
||||
*
|
||||
@ -920,9 +920,8 @@ parse_start:
|
||||
case 'n':
|
||||
display_fi = TRUE;
|
||||
last_was_dset = FALSE;
|
||||
if ( opt_arg != NULL) {
|
||||
if (opt_arg != NULL)
|
||||
h5trav_set_verbose(HDatoi(opt_arg));
|
||||
}
|
||||
break;
|
||||
case 'p':
|
||||
display_dcpl = TRUE;
|
||||
@ -939,8 +938,9 @@ parse_start:
|
||||
last_was_dset = FALSE;
|
||||
break;
|
||||
case 'A':
|
||||
if ( opt_arg != NULL) {
|
||||
if(0 == HDatoi(opt_arg)) include_attrs = FALSE;
|
||||
if (opt_arg != NULL) {
|
||||
if(0 == HDatoi(opt_arg))
|
||||
include_attrs = FALSE;
|
||||
}
|
||||
else {
|
||||
display_data = FALSE;
|
||||
@ -1059,7 +1059,7 @@ parse_start:
|
||||
break;
|
||||
|
||||
case 'o':
|
||||
if ( bin_output ) {
|
||||
if (bin_output) {
|
||||
if (h5tools_set_data_output_file(opt_arg, 1) < 0) {
|
||||
usage(h5tools_getprogname());
|
||||
goto error;
|
||||
@ -1086,8 +1086,8 @@ parse_start:
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
if ( opt_arg != NULL) {
|
||||
if ( ( bin_form = set_binary_form(opt_arg)) < 0) {
|
||||
if (opt_arg != NULL) {
|
||||
if ((bin_form = set_binary_form(opt_arg)) < 0) {
|
||||
/* failed to set binary form */
|
||||
usage(h5tools_getprogname());
|
||||
goto error;
|
||||
@ -1106,7 +1106,7 @@ parse_start:
|
||||
break;
|
||||
|
||||
case 'q':
|
||||
if ( ( sort_by = set_sort_by(opt_arg)) < 0) {
|
||||
if ((sort_by = set_sort_by(opt_arg)) < 0) {
|
||||
/* failed to set "sort by" form */
|
||||
usage(h5tools_getprogname());
|
||||
goto error;
|
||||
@ -1114,7 +1114,7 @@ parse_start:
|
||||
break;
|
||||
|
||||
case 'z':
|
||||
if ( ( sort_order = set_sort_order(opt_arg)) < 0) {
|
||||
if ((sort_order = set_sort_order(opt_arg)) < 0) {
|
||||
/* failed to set "sort order" form */
|
||||
usage(h5tools_getprogname());
|
||||
goto error;
|
||||
@ -1268,7 +1268,10 @@ end_collect:
|
||||
/** end subsetting parameters **/
|
||||
|
||||
case 'E':
|
||||
enable_error_stack = TRUE;
|
||||
if (opt_arg != NULL)
|
||||
enable_error_stack = HDatoi(opt_arg);
|
||||
else
|
||||
enable_error_stack = 1;
|
||||
break;
|
||||
case 'C':
|
||||
disable_compact_subset = TRUE;
|
||||
@ -1306,7 +1309,7 @@ error:
|
||||
return hand;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: main
|
||||
*
|
||||
@ -1388,7 +1391,7 @@ main(int argc, const char *argv[])
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (enable_error_stack) {
|
||||
if (enable_error_stack > 0) {
|
||||
H5Eset_auto2(H5E_DEFAULT, func, edata);
|
||||
H5Eset_auto2(H5tools_ERR_STACK_g, tools_func, tools_edata);
|
||||
}
|
||||
@ -1764,7 +1767,7 @@ h5_fileaccess(void)
|
||||
return fapl;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: init_prefix
|
||||
*
|
||||
@ -1785,7 +1788,7 @@ init_prefix(char **prfx, size_t prfx_len)
|
||||
error_msg("unable to allocate prefix buffer\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: add_prefix
|
||||
*
|
||||
|
@ -667,7 +667,7 @@ int parse_command_line(int argc, const char **argv, pack_opt_t* options)
|
||||
break;
|
||||
|
||||
case 'E':
|
||||
enable_error_stack = TRUE;
|
||||
enable_error_stack = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -760,7 +760,7 @@ int main(int argc, const char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
if (enable_error_stack) {
|
||||
if (enable_error_stack > 0) {
|
||||
H5Eset_auto2(H5E_DEFAULT, func, edata);
|
||||
H5Eset_auto2(H5tools_ERR_STACK_g, tools_func, tools_edata);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user