diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2000-12-28 18:54:34 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2000-12-28 18:54:34 (GMT) |
commit | 9961fb12777f245340941d14493809ef3c9348c5 (patch) | |
tree | 8d03cd7f002c5017ddb667f52abaf34710904727 | |
parent | 9d8f04ded1e821c6b8b1cff8e98405a009c223c6 (diff) | |
download | hdf5-9961fb12777f245340941d14493809ef3c9348c5.zip hdf5-9961fb12777f245340941d14493809ef3c9348c5.tar.gz hdf5-9961fb12777f245340941d14493809ef3c9348c5.tar.bz2 |
[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)
-rw-r--r-- | src/H5B.c | 3 | ||||
-rw-r--r-- | src/H5Gnode.c | 2 | ||||
-rw-r--r-- | src/H5HL.c | 11 | ||||
-rw-r--r-- | src/H5O.c | 3 | ||||
-rw-r--r-- | src/H5Odtype.c | 32 |
5 files changed, 48 insertions, 3 deletions
@@ -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)); @@ -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, @@ -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; i<dt->u.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; i<dt->u.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: |