summaryrefslogtreecommitdiffstats
path: root/src/H5trace.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5trace.c')
-rw-r--r--src/H5trace.c161
1 files changed, 80 insertions, 81 deletions
diff --git a/src/H5trace.c b/src/H5trace.c
index e9b351a..a96bba7 100644
--- a/src/H5trace.c
+++ b/src/H5trace.c
@@ -15,11 +15,11 @@
/*-------------------------------------------------------------------------
*
- * Created: H5trace.c
- * Aug 21 2006
- * Quincey Koziol <koziol@hdfgroup.org>
+ * Created: H5trace.c
+ * Aug 21 2006
+ * Quincey Koziol <koziol@hdfgroup.org>
*
- * Purpose: Internal code for tracing API calls
+ * Purpose: Internal code for tracing API calls
*
*-------------------------------------------------------------------------
*/
@@ -29,16 +29,15 @@
/****************/
#define H5I_FRIEND /*suppress error about including H5Ipkg */
-
/***********/
/* Headers */
/***********/
-#include "H5private.h" /* Generic Functions */
-#include "H5Dprivate.h" /* Datasets */
-#include "H5Eprivate.h" /* Error handling */
-#include "H5FDprivate.h" /* File drivers */
-#include "H5Ipkg.h" /* IDs */
-#include "H5MMprivate.h" /* Memory management */
+#include "H5private.h" /* Generic Functions */
+#include "H5Dprivate.h" /* Datasets */
+#include "H5Eprivate.h" /* Error handling */
+#include "H5FDprivate.h" /* File drivers */
+#include "H5Ipkg.h" /* IDs */
+#include "H5MMprivate.h" /* Memory management */
#ifdef H5_HAVE_PARALLEL
/* datatypes of predefined drivers needed by H5_trace() */
@@ -83,36 +82,36 @@
/*-------------------------------------------------------------------------
- * Function: H5_trace
+ * Function: H5_trace
*
- * Purpose: This function is called whenever an API function is called
- * and tracing is turned on. If RETURNING is non-zero then
- * the caller is about to return and RETURNING points to the
+ * Purpose: This function is called whenever an API function is called
+ * and tracing is turned on. If RETURNING is non-zero then
+ * the caller is about to return and RETURNING points to the
* time for the corresponding function call event. Otherwise
* we print the function name and the arguments.
*
- * The TYPE argument is a string which gives the type of each of
- * the following argument pairs. Each type is zero or more
- * asterisks (one for each level of indirection, although some
- * types have one level of indirection already implied) followed
- * by either one letter (lower case) or two letters (first one
- * uppercase).
+ * The TYPE argument is a string which gives the type of each of
+ * the following argument pairs. Each type is zero or more
+ * asterisks (one for each level of indirection, although some
+ * types have one level of indirection already implied) followed
+ * by either one letter (lower case) or two letters (first one
+ * uppercase).
*
- * The variable argument list consists of pairs of values. Each
- * pair is a string which is the formal argument name in the
- * calling function, followed by the argument value. The type
- * of the argument value is given by the TYPE string.
+ * The variable argument list consists of pairs of values. Each
+ * pair is a string which is the formal argument name in the
+ * calling function, followed by the argument value. The type
+ * of the argument value is given by the TYPE string.
*
- * Note: The TYPE string is meant to be terse and is generated by a
- * separate perl script.
+ * Note: The TYPE string is meant to be terse and is generated by a
+ * separate perl script.
*
- * WARNING: DO NOT CALL ANY HDF5 FUNCTION THAT CALLS FUNC_ENTER(). DOING
- * SO MAY CAUSE H5_trace() TO BE INVOKED RECURSIVELY OR MAY
- * CAUSE LIBRARY INITIALIZATIONS THAT ARE NOT DESIRED.
+ * WARNING: DO NOT CALL ANY HDF5 FUNCTION THAT CALLS FUNC_ENTER(). DOING
+ * SO MAY CAUSE H5_trace() TO BE INVOKED RECURSIVELY OR MAY
+ * CAUSE LIBRARY INITIALIZATIONS THAT ARE NOT DESIRED.
*
- * Return: Execution time for an API call
+ * Return: Execution time for an API call
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Tuesday, June 16, 1998
*
*-------------------------------------------------------------------------
@@ -120,14 +119,14 @@
double
H5_trace(const double *returning, const char *func, const char *type, ...)
{
- va_list ap;
- char buf[64], *rest;
- const char *argname;
- int argno = 0, ptr, asize_idx;
- hssize_t asize[16];
- hssize_t i;
- void *vp = NULL;
- FILE *out = H5_debug_g.trace;
+ va_list ap;
+ char buf[64], *rest;
+ const char *argname;
+ int argno = 0, ptr, asize_idx;
+ hssize_t asize[16];
+ hssize_t i;
+ void *vp = NULL;
+ FILE *out = H5_debug_g.trace;
H5_timer_t event_time;
static H5_timer_t first_time = {0.0F, 0.0F, 0.0F};
static int current_depth = 0;
@@ -206,48 +205,48 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
/* Parse the argument types */
for(argno = 0; *type; argno++, type += (HDisupper(*type) ? 2 : 1)) {
- /* Count levels of indirection */
- for(ptr = 0; '*' == *type; type++)
+ /* Count levels of indirection */
+ for(ptr = 0; '*' == *type; type++)
ptr++;
- if('[' == *type) {
- if('a' == type[1]) {
- asize_idx = (int)HDstrtol(type + 2, &rest, 10);
+ if('[' == *type) {
+ if('a' == type[1]) {
+ asize_idx = (int)HDstrtol(type + 2, &rest, 10);
HDassert(0 <= asize_idx && asize_idx < (int) NELMTS(asize));
- HDassert(']'==*rest);
- type = rest + 1;
- } else {
- rest = (char *)HDstrchr(type, ']');
- HDassert(rest);
- type = rest + 1;
- asize_idx = -1;
- }
- } /* end if */
+ HDassert(']'==*rest);
+ type = rest + 1;
+ } else {
+ rest = (char *)HDstrchr(type, ']');
+ HDassert(rest);
+ type = rest + 1;
+ asize_idx = -1;
+ }
+ } /* end if */
else
- asize_idx = -1;
-
- /*
- * The argument name. Leave off the `_id' part. If the argument
- * name is the null pointer then don't print the argument or the
- * following `='. This is used for return values.
- */
- argname = va_arg(ap, char *); /*lint !e64 Type mismatch not really occuring */
- if(argname) {
- unsigned n = (unsigned)MAX (0, (int)HDstrlen(argname) - 3); /*lint !e666 Allow expression with side effects */
-
- if(!HDstrcmp(argname + n, "_id")) {
- HDstrncpy(buf, argname, (size_t)MIN((int)sizeof(buf) - 1, n));
- buf[MIN((int)sizeof(buf) - 1, n)] = '\0';
- argname = buf;
- } /* end if */
- fprintf(out, "%s%s=", argno?", ":"", argname);
- } /* end if */
+ asize_idx = -1;
+
+ /*
+ * The argument name. Leave off the `_id' part. If the argument
+ * name is the null pointer then don't print the argument or the
+ * following `='. This is used for return values.
+ */
+ argname = va_arg(ap, char *); /*lint !e64 Type mismatch not really occuring */
+ if(argname) {
+ unsigned n = (unsigned)MAX (0, (int)HDstrlen(argname) - 3); /*lint !e666 Allow expression with side effects */
+
+ if(!HDstrcmp(argname + n, "_id")) {
+ HDstrncpy(buf, argname, (size_t)MIN((int)sizeof(buf) - 1, n));
+ buf[MIN((int)sizeof(buf) - 1, n)] = '\0';
+ argname = buf;
+ } /* end if */
+ fprintf(out, "%s%s=", argno?", ":"", argname);
+ } /* end if */
else
- argname = "";
+ argname = "";
- /* The value */
- if(ptr)
+ /* The value */
+ if(ptr)
vp = va_arg(ap, void *); /*lint !e64 Type mismatch not really occuring */
- switch(type[0]) {
+ switch(type[0]) {
case 'a':
if(ptr) {
if(vp)
@@ -268,7 +267,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
fprintf(out, "0x%lx", (unsigned long)vp);
else
fprintf(out, "NULL");
- } /* end if */
+ } /* end if */
else {
hbool_t bool_var = va_arg(ap, hbool_t); /*lint !e732 Loss of sign not really occuring */
@@ -3005,7 +3004,7 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
else
fprintf(out, "BADTYPE(%c)", type[0]);
goto error;
- } /* end switch */
+ } /* end switch */
} /* end for */
/* Display event time for return */
@@ -3016,10 +3015,10 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
error:
va_end(ap);
if(returning)
- fprintf(out, ";\n");
+ fprintf(out, ";\n");
else {
- last_call_depth = current_depth++;
- fprintf (out, ")");
+ last_call_depth = current_depth++;
+ fprintf (out, ")");
} /* end else */
HDfflush(out);