From 9961fb12777f245340941d14493809ef3c9348c5 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Thu, 28 Dec 2000 13:54:34 -0500 Subject: [svn-r3209] Purpose: Updating debugging information for new features, etc. Description: Lots of the new features added to the library during the last year or so have been added without updating the debugging routines used by h5debug. Solution: Added more of the new features (although not all of them) to the debugging routines for h5debug. Also included some more information to expand on the information printed from h5debug. Platforms tested: FreeBSD 4.2 (hawkwind) --- src/H5B.c | 3 +++ src/H5Gnode.c | 2 ++ src/H5HL.c | 11 +++++++++-- src/H5O.c | 3 +++ src/H5Odtype.c | 32 +++++++++++++++++++++++++++++++- 5 files changed, 48 insertions(+), 3 deletions(-) diff --git a/src/H5B.c b/src/H5B.c index e328902..04d46f5 100644 --- a/src/H5B.c +++ b/src/H5B.c @@ -2153,6 +2153,9 @@ H5B_debug(H5F_t *f, haddr_t addr, FILE *stream, intn indent, intn fwidth, "Tree type ID:", (int) (bt->type->id)); HDfprintf(stream, "%*s%-*s %lu\n", indent, "", fwidth, + "Size of node:", + (unsigned long) H5B_nodesize(f, bt->type, NULL, bt->sizeof_rkey)); + HDfprintf(stream, "%*s%-*s %lu\n", indent, "", fwidth, "Size of raw (disk) key:", (unsigned long) (bt->sizeof_rkey)); HDfprintf(stream, "%*s%-*s %s\n", indent, "", fwidth, diff --git a/src/H5Gnode.c b/src/H5Gnode.c index 4df2142..bf9f959 100644 --- a/src/H5Gnode.c +++ b/src/H5Gnode.c @@ -1190,6 +1190,8 @@ H5G_node_debug(H5F_t *f, haddr_t addr, FILE * stream, intn indent, fprintf(stream, "%*s%-*s %s\n", indent, "", fwidth, "Dirty:", sn->dirty ? "Yes" : "No"); + fprintf(stream, "%*s%-*s %u\n", indent, "", fwidth, + "Size of Node (in bytes):", (unsigned)H5G_node_size(f)); fprintf(stream, "%*s%-*s %d of %d\n", indent, "", fwidth, "Number of Symbols:", sn->nsyms, 2 * H5G_NODE_K(f)); diff --git a/src/H5HL.c b/src/H5HL.c index 38e9134..2d2c77f 100644 --- a/src/H5HL.c +++ b/src/H5HL.c @@ -296,7 +296,8 @@ H5HL_load(H5F_t *f, haddr_t addr, const void UNUSED *udata1, done: if (!ret_value && heap) { - heap->chunk = H5FL_BLK_FREE(heap_chunk,heap->chunk); + if(heap->chunk) + heap->chunk = H5FL_BLK_FREE(heap_chunk,heap->chunk); for (fl = heap->freelist; fl; fl = tail) { tail = fl->next; H5FL_FREE(H5HL_free_t,fl); @@ -960,11 +961,17 @@ H5HL_debug(H5F_t *f, haddr_t addr, FILE * stream, intn indent, intn fwidth) HRETURN_ERROR(H5E_HEAP, H5E_CANTLOAD, FAIL, "unable to load heap"); } - fprintf(stream, "%*sHeap...\n", indent, ""); + fprintf(stream, "%*sLocal Heap...\n", indent, ""); fprintf(stream, "%*s%-*s %d\n", indent, "", fwidth, "Dirty:", (int) (h->dirty)); fprintf(stream, "%*s%-*s %lu\n", indent, "", fwidth, + "Header size (in bytes):", + (unsigned long) H5HL_SIZEOF_HDR(f)); + HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth, + "Address of heap data:", + h->addr); + fprintf(stream, "%*s%-*s %lu\n", indent, "", fwidth, "Data bytes allocated on disk:", (unsigned long) (h->disk_alloc)); fprintf(stream, "%*s%-*s %lu\n", indent, "", fwidth, diff --git a/src/H5O.c b/src/H5O.c index 41cc4a4..9d3629f 100644 --- a/src/H5O.c +++ b/src/H5O.c @@ -2169,6 +2169,9 @@ H5O_debug(H5F_t *f, haddr_t addr, FILE *stream, intn indent, intn fwidth) HDfprintf(stream, "%*s%-*s %d\n", indent, "", fwidth, "Version:", (int) (oh->version)); + HDfprintf(stream, "%*s%-*s %u\n", indent, "", fwidth, + "Header size (in bytes):", + (unsigned) H5O_SIZEOF_HDR(f)); HDfprintf(stream, "%*s%-*s %d\n", indent, "", fwidth, "Number of links:", (int) (oh->nlink)); diff --git a/src/H5Odtype.c b/src/H5Odtype.c index b18c138..d5b7618 100644 --- a/src/H5Odtype.c +++ b/src/H5Odtype.c @@ -1195,9 +1195,18 @@ H5O_dtype_debug(H5F_t *f, const void *mesg, FILE *stream, case H5T_COMPOUND: s = "compound"; break; + case H5T_REFERENCE: + s = "reference"; + break; case H5T_ENUM: s = "enum"; break; + case H5T_ARRAY: + s = "array"; + break; + case H5T_VLEN: + s = "variable-length sequence"; + break; default: sprintf(buf, "H5T_CLASS_%d", (int) (dt->type)); s = buf; @@ -1271,7 +1280,28 @@ H5O_dtype_debug(H5F_t *f, const void *mesg, FILE *stream, } else if (H5T_OPAQUE==dt->type) { fprintf(stream, "%*s%-*s \"%s\"\n", indent, "", fwidth, "Tag:", dt->u.opaque.tag); - + } else if (H5T_REFERENCE==dt->type) { + fprintf(stream, "%*s%-*s\n", indent, "", fwidth, + "Fix dumping reference types!"); + } else if (H5T_VLEN==dt->type) { + fprintf(stream, "%*s%-*s\n", indent, "", fwidth, + "Fix dumping variable-length types!"); + } else if (H5T_ARRAY==dt->type) { + fprintf(stream, "%*s%-*s %d\n", indent, "", fwidth, + "Rank:", + dt->u.array.ndims); + fprintf(stream, "%*s%-*s {", indent, "", fwidth, "Dim Size:"); + for (i=0; iu.array.ndims; i++) { + fprintf (stream, "%s%u", i?", ":"", dt->u.array.dim[i]); + } + fprintf (stream, "}\n"); + fprintf(stream, "%*s%-*s {", indent, "", fwidth, "Dim Permutation:"); + for (i=0; iu.array.ndims; i++) { + fprintf (stream, "%s%d", i?", ":"", dt->u.array.perm[i]); + } + fprintf (stream, "}\n"); + fprintf(stream, "%*s%s\n", indent, "", "Base type:"); + H5O_dtype_debug(f, dt->parent, stream, indent+3, MAX(0, fwidth-3)); } else { switch (dt->u.atomic.order) { case H5T_ORDER_LE: -- cgit v0.12