summaryrefslogtreecommitdiffstats
path: root/src/debug.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1997-08-07 19:23:00 (GMT)
committerRobb Matzke <matzke@llnl.gov>1997-08-07 19:23:00 (GMT)
commita905a3a1e343d4507049c30512842957e2f6307c (patch)
treeaa01b7418431c48634458a028c2fe6fd354f1684 /src/debug.c
parentdd0fbd5b0060ebc7703da8eaab747f7a3025be2a (diff)
downloadhdf5-a905a3a1e343d4507049c30512842957e2f6307c.zip
hdf5-a905a3a1e343d4507049c30512842957e2f6307c.tar.gz
hdf5-a905a3a1e343d4507049c30512842957e2f6307c.tar.bz2
[svn-r15] ./src/H5AC.c
./src/H5ACprivate.h ./src/H5ACproto.h ./src/H5Bproto.h ./src/H5Gproto.h ./src/H5Hproto.h ./src/H5MFprivate.h ./src/H5MFproto.h ./src/H5MM.c ./src/H5MMprivate.h ./src/H5MMproto.h Changed my e-mail address. ./src/H5O.c NEW ./src/H5Onull.c NEW ./src/H5Ocont. NEW ./src/H5Ostab.c NEW New functions for dealing with object headers. The H5O.c is the generic stuff, and each particular message has a source file for the specific stuff. Use ./src/H5Ostab.c as a model for implementing other messages. ./src/Makefile ./src/test/Makefile Added new files ./src/debug.c Added debugging calls for object headers. ./src/H5B.c ./src/H5Bprivate.h ./src/H5Gnode.c ./src/H5MF.c Changed my e-mail address. Improved error handling. ./src/H5Eprivate.h ./src/H5Eproto.h Added more error symbols ./src/H5F.c Changed my e-mail address. Used macros for sizeof offsets and lengths. Added the interface initialization function to H5F_block_read() and H5F_block_write(). Updated H5F_debug() ./src/H5Fprivate.h Got rid of H5F_symbol_table_size(). Use H5G_SIZEOF_ENTRY() instead. Reformatted H5F_decode_offset() for readability. ./src/H5G.c Changed my e-mail address. Improved error handling. Replaced not_implemented_yet__*() with real functions from H5O. ./src/H5Gprivate.h Changed `symtab' to `stab' to be consistent with other stuff. ./src/H5H.c ./src/H5Hprivate.h Changed my e-mail address. Improved error handling. Added an extra argument to H5H_new() to indicate whether you want a global heap or a local heap. ./src/hdf5gen.h Added NELMTS() Fixed FUNC_ENTER() Rewrote FUNC_LEAVE() in terms of HRETURN(). ./src/hdf5meta.h Added `const' to the decode macros. ./src/hdf5pabl.h Added PABLO_SAVE() ./test/testhdf5.c ./test/testhdf5.h Added calls for object header testing. ./test/theap.c Turned off some output.
Diffstat (limited to 'src/debug.c')
-rw-r--r--src/debug.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/debug.c b/src/debug.c
index f061d4c..d07b2cb 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -6,7 +6,7 @@
*
* Created: debug.c
* Jul 18 1997
- * Robb Matzke <robb@maya.nuance.com>
+ * Robb Matzke <matzke@llnl.gov>
*
* Purpose: Debugs an existing HDF5 file at a low level.
*
@@ -21,6 +21,7 @@
#include "H5Fprivate.h"
#include "H5Gprivate.h"
#include "H5Hprivate.h"
+#include "H5Oprivate.h"
#define INDENT 3
#define VCOL 50
@@ -36,7 +37,7 @@
* Failure: exit (non-zero)
*
* Programmer: Robb Matzke
- * robb@maya.nuance.com
+ * matzke@llnl.gov
* Jul 18 1997
*
* Modifications:
@@ -51,6 +52,7 @@ main (int argc, char *argv[])
haddr_t addr = 0;
uint8 sig[16];
intn i;
+ herr_t status = SUCCEED;
/*
* Parse command arguments.
@@ -85,19 +87,19 @@ main (int argc, char *argv[])
/*
* Debug the boot block.
*/
- H5F_debug (f, 0, stdout, 0, VCOL);
+ status = H5F_debug (f, 0, stdout, 0, VCOL);
} else if (!memcmp (sig, H5H_MAGIC, H5H_SIZEOF_MAGIC)) {
/*
* Debug a heap.
*/
- H5H_debug (f, addr, stdout, 0, VCOL);
+ status = H5H_debug (f, addr, stdout, 0, VCOL);
} else if (!memcmp (sig, H5G_NODE_MAGIC, H5G_NODE_SIZEOF_MAGIC)) {
/*
* Debug a symbol table node.
*/
- H5G_node_debug (f, addr, stdout, 0, VCOL);
+ status = H5G_node_debug (f, addr, stdout, 0, VCOL);
} else if (!memcmp (sig, H5B_MAGIC, H5B_SIZEOF_MAGIC)) {
/*
@@ -108,13 +110,20 @@ main (int argc, char *argv[])
H5B_subid_t subtype = sig[H5B_SIZEOF_MAGIC];
switch (subtype) {
case H5B_SUBTYPE_SNODE:
- H5G_node_debug (f, addr, stdout, 0, VCOL);
+ status = H5G_node_debug (f, addr, stdout, 0, VCOL);
break;
default:
fprintf (stderr, "Unknown B-tree subtype %u\n", (unsigned)(subtype));
exit (4);
}
+
+ } else if (sig[0]==H5O_VERSION && sig[1]==H5O_ALIGNMENT) {
+ /*
+ * This could be an object header. Since they don't have a signature
+ * it's a somewhat "ify" detection.
+ */
+ status = H5O_debug (f, addr, stdout, 0, VCOL);
} else {
/*
@@ -137,6 +146,11 @@ main (int argc, char *argv[])
exit (4);
}
+ if (status<0) {
+ fprintf (stderr, "An error occurred\n");
+ exit (5);
+ }
+
H5Fclose (fid);
exit (0);
}