diff options
-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: |