summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2000-12-28 18:54:34 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2000-12-28 18:54:34 (GMT)
commit9961fb12777f245340941d14493809ef3c9348c5 (patch)
tree8d03cd7f002c5017ddb667f52abaf34710904727
parent9d8f04ded1e821c6b8b1cff8e98405a009c223c6 (diff)
downloadhdf5-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.c3
-rw-r--r--src/H5Gnode.c2
-rw-r--r--src/H5HL.c11
-rw-r--r--src/H5O.c3
-rw-r--r--src/H5Odtype.c32
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; 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: