summaryrefslogtreecommitdiffstats
path: root/src/debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug.c')
-rw-r--r--src/debug.c239
1 files changed, 117 insertions, 122 deletions
diff --git a/src/debug.c b/src/debug.c
index 2271460..3787318 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -1,16 +1,16 @@
/*-------------------------------------------------------------------------
- * Copyright (C) 1997 National Center for Supercomputing Applications.
+ * Copyright (C) 1997 National Center for Supercomputing Applications.
* All rights reserved.
*
*-------------------------------------------------------------------------
*
- * Created: debug.c
- * Jul 18 1997
- * Robb Matzke <matzke@llnl.gov>
+ * Created: debug.c
+ * Jul 18 1997
+ * Robb Matzke <matzke@llnl.gov>
*
- * Purpose: Debugs an existing HDF5 file at a low level.
+ * Purpose: Debugs an existing HDF5 file at a low level.
*
- * Modifications:
+ * Modifications:
*
*-------------------------------------------------------------------------
*/
@@ -21,142 +21,137 @@
#include <H5Hprivate.h>
#include <H5Oprivate.h>
-#define INDENT 3
-#define VCOL 50
-
+#define INDENT 3
+#define VCOL 50
/*-------------------------------------------------------------------------
- * Function: main
+ * Function: main
*
- * Usage: debug FILENAME [OFFSET]
+ * Usage: debug FILENAME [OFFSET]
*
- * Return: Success: exit (0)
+ * Return: Success: exit (0)
*
- * Failure: exit (non-zero)
+ * Failure: exit (non-zero)
*
- * Programmer: Robb Matzke
- * matzke@llnl.gov
- * Jul 18 1997
+ * Programmer: Robb Matzke
+ * matzke@llnl.gov
+ * Jul 18 1997
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
int
-main (int argc, char *argv[])
+main(int argc, char *argv[])
{
- hid_t fid;
- H5F_t *f;
- haddr_t addr;
- uint8 sig[16];
- intn i;
- herr_t status = SUCCEED;
- haddr_t extra;
+ hid_t fid;
+ H5F_t *f;
+ haddr_t addr;
+ uint8 sig[16];
+ intn i;
+ herr_t status = SUCCEED;
+ haddr_t extra;
- /*
- * Open the file and get the file descriptor.
- */
- if ((fid = H5Fopen (argv[1], 0, 0))<0) {
- fprintf (stderr, "cannot open file\n");
- HDexit (1);
- }
- if (NULL==(f=H5Aatom_object (fid))) {
- fprintf (stderr, "cannot obtain H5F_t pointer\n");
- HDexit (2);
- }
+ /*
+ * Open the file and get the file descriptor.
+ */
+ if ((fid = H5Fopen(argv[1], 0, 0)) < 0) {
+ fprintf(stderr, "cannot open file\n");
+ HDexit(1);
+ }
+ if (NULL == (f = H5Aatom_object(fid))) {
+ fprintf(stderr, "cannot obtain H5F_t pointer\n");
+ HDexit(2);
+ }
+ /*
+ * Parse command arguments.
+ */
+ H5F_addr_reset(&addr);
+ H5F_addr_reset(&extra);
+ if (argc > 2) {
+ printf("New address: %s\n", argv[2]);
+ addr.offset = HDstrtol(argv[2], NULL, 0);
+ }
+ if (argc > 3) {
+ extra.offset = HDstrtol(argv[3], NULL, 0);
+ }
+ /*
+ * Read the signature at the specified file position.
+ */
+ printf("Reading signature at address ");
+ H5F_addr_print(stdout, &addr);
+ printf(" (rel)\n");
+ if (H5F_block_read(f, &addr, sizeof(sig), sig) < 0) {
+ fprintf(stderr, "cannot read signature\n");
+ HDexit(3);
+ }
+ if (!HDmemcmp(sig, H5F_SIGNATURE, H5F_SIGNATURE_LEN)) {
+ /*
+ * Debug the boot block.
+ */
+ status = H5F_debug(f, &addr, stdout, 0, VCOL);
- /*
- * Parse command arguments.
- */
- H5F_addr_reset (&addr);
- H5F_addr_reset (&extra);
- if (argc>2) {
- printf ("New address: %s\n", argv[2]);
- addr.offset = HDstrtol (argv[2], NULL, 0);
- }
- if (argc>3) {
- extra.offset = HDstrtol (argv[3], NULL, 0);
- }
-
- /*
- * Read the signature at the specified file position.
- */
- printf ("Reading signature at address ");
- H5F_addr_print (stdout, &addr);
- printf (" (rel)\n");
- if (H5F_block_read (f, &addr, sizeof(sig), sig)<0) {
- fprintf (stderr, "cannot read signature\n");
- HDexit (3);
- }
+ } else if (!HDmemcmp(sig, H5H_MAGIC, H5H_SIZEOF_MAGIC)) {
+ /*
+ * Debug a heap.
+ */
+ status = H5H_debug(f, &addr, stdout, 0, VCOL);
- if (!HDmemcmp (sig, H5F_SIGNATURE, H5F_SIGNATURE_LEN)) {
- /*
- * Debug the boot block.
- */
- status = H5F_debug (f, &addr, stdout, 0, VCOL);
-
- } else if (!HDmemcmp (sig, H5H_MAGIC, H5H_SIZEOF_MAGIC)) {
- /*
- * Debug a heap.
- */
- status = H5H_debug (f, &addr, stdout, 0, VCOL);
+ } else if (!HDmemcmp(sig, H5G_NODE_MAGIC, H5G_NODE_SIZEOF_MAGIC)) {
+ /*
+ * Debug a symbol table node.
+ */
+ status = H5G_node_debug(f, &addr, stdout, 0, VCOL, &extra);
- } else if (!HDmemcmp (sig, H5G_NODE_MAGIC, H5G_NODE_SIZEOF_MAGIC)) {
- /*
- * Debug a symbol table node.
- */
- status = H5G_node_debug (f, &addr, stdout, 0, VCOL, &extra);
+ } else if (!HDmemcmp(sig, H5B_MAGIC, H5B_SIZEOF_MAGIC)) {
+ /*
+ * Debug a B-tree. B-trees are debugged through the B-tree
+ * subclass. The subclass identifier is the byte immediately
+ * after the B-tree signature.
+ */
+ H5B_subid_t subtype = sig[H5B_SIZEOF_MAGIC];
+ switch (subtype) {
+ case H5B_SNODE_ID:
+ status = H5G_node_debug(f, &addr, stdout, 0, VCOL, &extra);
+ break;
- } else if (!HDmemcmp (sig, H5B_MAGIC, H5B_SIZEOF_MAGIC)) {
- /*
- * Debug a B-tree. B-trees are debugged through the B-tree
- * subclass. The subclass identifier is the byte immediately
- * after the B-tree signature.
- */
- H5B_subid_t subtype = sig[H5B_SIZEOF_MAGIC];
- switch (subtype) {
- case H5B_SNODE_ID:
- status = H5G_node_debug (f, &addr, stdout, 0, VCOL, &extra);
- break;
+ default:
+ fprintf(stderr, "Unknown B-tree subtype %u\n", (unsigned) (subtype));
+ HDexit(4);
+ }
- default:
- fprintf (stderr, "Unknown B-tree subtype %u\n", (unsigned)(subtype));
- HDexit (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 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 {
- /*
- * Got some other unrecognized signature.
- */
- printf ("%-*s ", VCOL, "Signature:");
- for (i=0; i<8; i++) {
- if (sig[i]>' ' && sig[i]<='~' && '\\'!=sig[i]) {
- HDputchar (sig[i]);
- } else if ('\\'==sig[i]) {
- HDputchar ('\\');
- HDputchar ('\\');
- } else {
- printf ("\\%03o", sig[i]);
- }
- }
- HDputchar ('\n');
-
- fprintf (stderr, "unknown signature\n");
- HDexit (4);
- }
+ } else {
+ /*
+ * Got some other unrecognized signature.
+ */
+ printf("%-*s ", VCOL, "Signature:");
+ for (i = 0; i < 8; i++) {
+ if (sig[i] > ' ' && sig[i] <= '~' && '\\' != sig[i]) {
+ HDputchar(sig[i]);
+ } else if ('\\' == sig[i]) {
+ HDputchar('\\');
+ HDputchar('\\');
+ } else {
+ printf("\\%03o", sig[i]);
+ }
+ }
+ HDputchar('\n');
- if (status<0) {
- fprintf (stderr, "An error occurred\n");
- HDexit (5);
- }
+ fprintf(stderr, "unknown signature\n");
+ HDexit(4);
+ }
- H5Fclose (fid);
- HDexit (0);
+ if (status < 0) {
+ fprintf(stderr, "An error occurred\n");
+ HDexit(5);
+ }
+ H5Fclose(fid);
+ HDexit(0);
}