diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-08-20 22:57:35 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-08-20 22:57:35 (GMT) |
commit | 49133159c8bb1da1edf9e89971a842e50b545314 (patch) | |
tree | b1fccecc5be463797bd9bbbb9a7a31b3afcda44a | |
parent | 2c61dcc3ee50581ca29191f3d7ea891fcca3c4a2 (diff) | |
download | hdf5-49133159c8bb1da1edf9e89971a842e50b545314.zip hdf5-49133159c8bb1da1edf9e89971a842e50b545314.tar.gz hdf5-49133159c8bb1da1edf9e89971a842e50b545314.tar.bz2 |
[svn-r609] Debugging.html
Fixed errors
H5.c
Fixed core dump with setvbuf() for debugging.
H5Fistore.c
Fixed bug with sparse datasets.
H5Omtime.c
Found a typo in "Posix Programmer's Guide". The `%z' in the
strftime() should be `%Z' instead.
H5T.c
H5Tpublic.h
Improved api tracing for H5Tinsert_array().
h5tools.c
Doesn't dump core for empty datasets.
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | README | 2 | ||||
-rw-r--r-- | doc/html/Debugging.html | 25 | ||||
-rw-r--r-- | src/.distdep | 672 | ||||
-rw-r--r-- | src/H5.c | 11 | ||||
-rw-r--r-- | src/H5Distore.c | 13 | ||||
-rw-r--r-- | src/H5Fistore.c | 13 | ||||
-rw-r--r-- | src/H5Omtime.c | 2 | ||||
-rw-r--r-- | src/H5T.c | 2 | ||||
-rw-r--r-- | src/H5Tpublic.h | 2 | ||||
-rw-r--r-- | tools/h5tools.c | 5 |
11 files changed, 393 insertions, 355 deletions
@@ -295,4 +295,3 @@ ./tools/h5repart.c ./tools/h5tools.c ./tools/h5tools.h - @@ -1,4 +1,4 @@ -This is hdf5-1.0.69 released on Thu Aug 20 04:19:20 CDT 1998 +This is hdf5-1.0.70 released on Thu Aug 20 17:55:38 CDT 1998 Please refer to the INSTALL file for installation instructions. ------------------------------------------------------------------------------ diff --git a/doc/html/Debugging.html b/doc/html/Debugging.html index 8c0c4cc..bd531f8 100644 --- a/doc/html/Debugging.html +++ b/doc/html/Debugging.html @@ -10,7 +10,7 @@ <h2>Introduction</h2> <p>The HDF5 library contains a number of debugging features to - make programmers lives easier including the ability to print + make programmers' lives easier including the ability to print detailed error messages, check invariant conditions, display timings and other statistics, and trace API function calls and return values. @@ -27,7 +27,7 @@ <br><br> <dt><b>Invariant Conditions</b> - <dd>Unless <code>NDEBUG</code> is defined during compiling the + <dd>Unless <code>NDEBUG</code> is defined during compiling, the library will include code to verify that invariant conditions have the expected values. When a problem is detected the library will display the file and line number within the @@ -63,14 +63,17 @@ <p> <center> <table border align=center width="100%"> - <caption align=top><h4>Example: An Error Message</h4></caption> <tr> <td> <p><code><pre> + HDF5-DIAG: Error detected in thread 0. Back trace follows. - #000: H5T.c line 462 in H5Tclose(): predefined data type - major(01): Function argument - minor(05): Bad value + #000: H5F.c line 1245 in H5Fopen(): unable to open file + major(04): File interface + minor(10): Unable to open file + #001: H5F.c line 846 in H5F_open(): file does not exist + major(04): File interface + minor(10): Unable to open file </code></pre> </td> </tr> @@ -78,7 +81,7 @@ HDF5-DIAG: Error detected in thread 0. Back trace follows. </center> <p>The error handling package (H5E) is described - <a href="Errors.html">here</a>. + <a href="Errors.html">elsewhere</a>. <h2>Invariant Conditions</h2> @@ -92,10 +95,10 @@ HDF5-DIAG: Error detected in thread 0. Back trace follows. <p> <center> <table border align=center width="100%"> - <caption align=top><h4>Example: A Failed Assertion</h4></caption> <tr> <td> <p><code><pre> + Assertion failed: H5.c:123: i<NELMTS(H5_debug_g) IOT Trap, core dumped. </code></pre> @@ -263,10 +266,10 @@ IOT Trap, core dumped. <p> <center> <table border align=center width="100%"> - <caption align=top><b>Sample Output</b></caption> <tr> <td> <code><pre> + H5Tcopy(type=184549388) = 184549419 (type); H5Tcopy(type=184549392) = 184549424 (type); H5Tlock(type=184549424) = SUCCEED; @@ -297,7 +300,6 @@ HDF5-DIAG: Error detected in thread 0. Back trace follows. <p> <center> <table border align=center width="100%"> - <caption align=top><b>Execution Examples</b></caption> <tr> <td>To display the trace on the standard error stream: <code><pre> @@ -378,6 +380,7 @@ $ env HDF5_DEBUG="55 trace" a.out 55>trace-output <tr> <td> <code><pre> + $ ../bin/trace *.c H5E.c: in function `H5Ewalk_cb': H5E.c:336: warning: trace info was not inserted @@ -402,7 +405,7 @@ H5E.c:336: warning: trace info was not inserted <address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address> <!-- Created: Wed Jun 17 12:29:12 EDT 1998 --> <!-- hhmts start --> -Last modified: Wed Aug 19 15:21:35 PDT 1998 +Last modified: Thu Aug 20 10:43:42 PDT 1998 <!-- hhmts end --> </body> </html> diff --git a/src/.distdep b/src/.distdep index 9f9d5a9..ea5aa16 100644 --- a/src/.distdep +++ b/src/.distdep @@ -1,34 +1,3 @@ -H5.o: \ - H5.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5ACprivate.h \ - H5ACpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Ipublic.h \ - H5Dpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5Iprivate.h \ - H5MMprivate.h \ - H5MMpublic.h \ - H5Pprivate.h \ - H5Ppublic.h \ - H5Zpublic.h \ - H5Sprivate.h \ - H5Spublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h \ - H5Tpublic.h H5A.o: \ H5A.c \ H5private.h \ @@ -62,111 +31,6 @@ H5A.o: \ H5Ppublic.h \ H5Apkg.h \ H5Aprivate.h -H5AC.o: \ - H5AC.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5ACprivate.h \ - H5ACpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Ipublic.h \ - H5Dpublic.h \ - H5Eprivate.h \ - H5Epublic.h -H5B.o: \ - H5B.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5ACprivate.h \ - H5ACpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Ipublic.h \ - H5Dpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5MFprivate.h \ - H5MFpublic.h \ - H5MMprivate.h -H5D.o: \ - H5D.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Iprivate.h \ - H5Ipublic.h \ - H5ACprivate.h \ - H5ACpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Dpublic.h \ - H5Dprivate.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h \ - H5Tpublic.h \ - H5Sprivate.h \ - H5Spublic.h \ - H5Zprivate.h \ - H5Zpublic.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5HLprivate.h \ - H5HLpublic.h \ - H5MFprivate.h \ - H5MFpublic.h -H5E.o: \ - H5E.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Iprivate.h \ - H5Ipublic.h \ - H5Eprivate.h -H5F.o: \ - H5F.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Aprivate.h \ - H5Apublic.h \ - H5Ipublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Dpublic.h \ - H5Dprivate.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h \ - H5Tpublic.h \ - H5Sprivate.h \ - H5Spublic.h \ - H5Zprivate.h \ - H5Zpublic.h \ - H5Iprivate.h \ - H5ACprivate.h \ - H5ACpublic.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5MMprivate.h \ - H5MMpublic.h H5Farray.o: \ H5Farray.c \ H5private.h \ @@ -203,55 +67,6 @@ H5Fcore.o: \ H5Eprivate.h \ H5Epublic.h \ H5Ipublic.h -H5Ffamily.o: \ - H5Ffamily.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5Ipublic.h -H5Fistore.o: \ - H5Fistore.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Dprivate.h \ - H5Dpublic.h \ - H5Ipublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h \ - H5Tpublic.h \ - H5Sprivate.h \ - H5Spublic.h \ - H5Zprivate.h \ - H5Zpublic.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5MFprivate.h \ - H5MFpublic.h -H5Flow.o: \ - H5Flow.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5Ipublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Dpublic.h \ - H5MMprivate.h \ - H5MMpublic.h H5Fmpio.o: \ H5Fmpio.c \ H5private.h \ @@ -450,24 +265,6 @@ H5HG.o: \ H5MFprivate.h \ H5MFpublic.h \ H5MMprivate.h -H5HL.o: \ - H5HL.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5ACprivate.h \ - H5ACpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Ipublic.h \ - H5Dpublic.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5HLprivate.h \ - H5HLpublic.h \ - H5MFprivate.h \ - H5MFpublic.h \ - H5MMprivate.h H5I.o: \ H5I.c \ H5private.h \ @@ -476,14 +273,6 @@ H5I.o: \ H5Iprivate.h \ H5Ipublic.h \ H5Eprivate.h -H5MF.o: \ - H5MF.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5Ipublic.h H5MM.o: \ H5MM.c \ H5private.h \ @@ -492,34 +281,6 @@ H5MM.o: \ H5Eprivate.h \ H5Epublic.h \ H5Ipublic.h -H5O.o: \ - H5O.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5ACprivate.h \ - H5ACpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Ipublic.h \ - H5Dpublic.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5MFprivate.h \ - H5MFpublic.h \ - H5MMprivate.h \ - H5MMpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h \ - H5Tpublic.h \ - H5Sprivate.h H5Oattr.o: \ H5Oattr.c \ H5private.h \ @@ -668,29 +429,6 @@ H5Olayout.o: \ H5Sprivate.h \ H5Spublic.h \ H5Zprivate.h -H5Omtime.o: \ - H5Omtime.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5Ipublic.h \ - H5MMprivate.h \ - H5MMpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Dpublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h \ - H5Tpublic.h H5Oname.o: \ H5Oname.c \ H5private.h \ @@ -829,29 +567,6 @@ H5P.o: \ H5Eprivate.h \ H5Epublic.h \ H5MMprivate.h -H5S.o: \ - H5S.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Iprivate.h \ - H5Ipublic.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5MMprivate.h \ - H5MMpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Dpublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h H5Sall.o: \ H5Sall.c \ H5private.h \ @@ -898,29 +613,6 @@ H5Shyper.o: \ H5HGpublic.h \ H5Tprivate.h \ H5Tpublic.h -H5Smpio.o: \ - H5Smpio.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5Ipublic.h \ - H5Sprivate.h \ - H5Spublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Dpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h \ - H5Tpublic.h H5Spoint.o: \ H5Spoint.c \ H5private.h \ @@ -972,34 +664,6 @@ H5Sselect.o: \ H5Tpublic.h \ H5Zprivate.h \ H5Zpublic.h -H5T.o: \ - H5T.c \ - H5private.h \ - H5public.h \ - H5config.h \ - H5Dprivate.h \ - H5Dpublic.h \ - H5Ipublic.h \ - H5Fprivate.h \ - H5Fpublic.h \ - H5Gprivate.h \ - H5Gpublic.h \ - H5Bprivate.h \ - H5Bpublic.h \ - H5Oprivate.h \ - H5Opublic.h \ - H5HGprivate.h \ - H5HGpublic.h \ - H5Tprivate.h \ - H5Tpublic.h \ - H5Sprivate.h \ - H5Spublic.h \ - H5Zprivate.h \ - H5Zpublic.h \ - H5Iprivate.h \ - H5Eprivate.h \ - H5Epublic.h \ - H5MMprivate.h H5Tbit.o: \ H5Tbit.c \ H5private.h \ @@ -1090,6 +754,143 @@ H5V.o: \ H5Tpublic.h \ H5Sprivate.h \ H5Spublic.h +H5AC.o: \ + H5AC.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5ACprivate.h \ + H5ACpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Ipublic.h \ + H5Dpublic.h \ + H5Eprivate.h \ + H5Epublic.h +H5B.o: \ + H5B.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5ACprivate.h \ + H5ACpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Ipublic.h \ + H5Dpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5MFprivate.h \ + H5MFpublic.h \ + H5MMprivate.h +H5E.o: \ + H5E.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Iprivate.h \ + H5Ipublic.h \ + H5Eprivate.h +H5Ffamily.o: \ + H5Ffamily.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5Ipublic.h +H5Flow.o: \ + H5Flow.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5Ipublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Dpublic.h \ + H5MMprivate.h \ + H5MMpublic.h +H5HL.o: \ + H5HL.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5ACprivate.h \ + H5ACpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Ipublic.h \ + H5Dpublic.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5HLprivate.h \ + H5HLpublic.h \ + H5MFprivate.h \ + H5MFpublic.h \ + H5MMprivate.h +H5MF.o: \ + H5MF.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5Ipublic.h +H5O.o: \ + H5O.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5ACprivate.h \ + H5ACpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Ipublic.h \ + H5Dpublic.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5MFprivate.h \ + H5MFpublic.h \ + H5MMprivate.h \ + H5MMpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h \ + H5Tpublic.h \ + H5Sprivate.h +H5Smpio.o: \ + H5Smpio.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5Ipublic.h \ + H5Sprivate.h \ + H5Spublic.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Dpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h \ + H5Tpublic.h H5Z.o: \ H5Z.c \ H5private.h \ @@ -1117,3 +918,202 @@ H5Z.o: \ H5Spublic.h \ H5Zprivate.h \ H5Zpublic.h +H5D.o: \ + H5D.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Iprivate.h \ + H5Ipublic.h \ + H5ACprivate.h \ + H5ACpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Dpublic.h \ + H5Dprivate.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h \ + H5Tpublic.h \ + H5Sprivate.h \ + H5Spublic.h \ + H5Zprivate.h \ + H5Zpublic.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5HLprivate.h \ + H5HLpublic.h \ + H5MFprivate.h \ + H5MFpublic.h +H5F.o: \ + H5F.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Aprivate.h \ + H5Apublic.h \ + H5Ipublic.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Dpublic.h \ + H5Dprivate.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h \ + H5Tpublic.h \ + H5Sprivate.h \ + H5Spublic.h \ + H5Zprivate.h \ + H5Zpublic.h \ + H5Iprivate.h \ + H5ACprivate.h \ + H5ACpublic.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5MMprivate.h \ + H5MMpublic.h +H5S.o: \ + H5S.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Iprivate.h \ + H5Ipublic.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5MMprivate.h \ + H5MMpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Dpublic.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h +H5T.o: \ + H5T.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Dprivate.h \ + H5Dpublic.h \ + H5Ipublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h \ + H5Tpublic.h \ + H5Sprivate.h \ + H5Spublic.h \ + H5Zprivate.h \ + H5Zpublic.h \ + H5Iprivate.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5MMprivate.h +H5.o: \ + H5.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5ACprivate.h \ + H5ACpublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Ipublic.h \ + H5Dpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5Iprivate.h \ + H5MMprivate.h \ + H5MMpublic.h \ + H5Pprivate.h \ + H5Ppublic.h \ + H5Zpublic.h \ + H5Sprivate.h \ + H5Spublic.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h \ + H5Tpublic.h +H5Fistore.o: \ + H5Fistore.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Dprivate.h \ + H5Dpublic.h \ + H5Ipublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h \ + H5Tpublic.h \ + H5Sprivate.h \ + H5Spublic.h \ + H5Zprivate.h \ + H5Zpublic.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5MFprivate.h \ + H5MFpublic.h +H5Omtime.o: \ + H5Omtime.c \ + H5private.h \ + H5public.h \ + H5config.h \ + H5Eprivate.h \ + H5Epublic.h \ + H5Ipublic.h \ + H5MMprivate.h \ + H5MMpublic.h \ + H5Oprivate.h \ + H5Opublic.h \ + H5Fprivate.h \ + H5Fpublic.h \ + H5Dpublic.h \ + H5Gprivate.h \ + H5Gpublic.h \ + H5Bprivate.h \ + H5Bpublic.h \ + H5HGprivate.h \ + H5HGpublic.h \ + H5Tprivate.h \ + H5Tpublic.h @@ -391,8 +391,9 @@ H5_debug_mask(const char *s) } else if (isdigit(*s)) { int fd = (int)HDstrtol (s, &rest, 0); - stream = HDfdopen (fd, "w"); - setvbuf (stream, NULL, _IOLBF, 0); + if ((stream=HDfdopen(fd, "w"))) { + setvbuf (stream, NULL, _IOLBF, 0); + } s = rest; } else { s++; @@ -2124,7 +2125,11 @@ H5_trace (hbool_t returning, const char *func, const char *type, ...) } } else { vp = va_arg (ap, void*); - fprintf (out, "0x%lx", (unsigned long)vp); + if (vp) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + fprintf(out, "NULL"); + } } break; diff --git a/src/H5Distore.c b/src/H5Distore.c index 94d3590..e94e627 100644 --- a/src/H5Distore.c +++ b/src/H5Distore.c @@ -471,6 +471,12 @@ H5F_istore_new_node(H5F_t *f, H5B_ins_t op, * that describes the chunk) and RT_KEY is the right key (the * one that describes the next or last chunk). * + * Note: It's possible that the chunk isn't really found. For + * instance, in a sparse dataset the requested chunk might fall + * between two stored chunks in which case this function is + * called with the maximum stored chunk indices less than the + * requested chunk indices. + * * Return: Success: SUCCEED with information about the chunk * returned through the UDATA argument. * @@ -500,6 +506,13 @@ H5F_istore_found(H5F_t __unused__ *f, const haddr_t *addr, assert(udata); assert(lt_key); + /* Is this *really* the requested chunk? */ + for (i=0; i<udata->mesg.ndims; i++) { + if (udata->key.offset[i]>=lt_key->offset[i]+udata->mesg.dim[i]) { + HRETURN(FAIL); + } + } + /* Initialize return values */ udata->addr = *addr; udata->key.nbytes = lt_key->nbytes; diff --git a/src/H5Fistore.c b/src/H5Fistore.c index 94d3590..e94e627 100644 --- a/src/H5Fistore.c +++ b/src/H5Fistore.c @@ -471,6 +471,12 @@ H5F_istore_new_node(H5F_t *f, H5B_ins_t op, * that describes the chunk) and RT_KEY is the right key (the * one that describes the next or last chunk). * + * Note: It's possible that the chunk isn't really found. For + * instance, in a sparse dataset the requested chunk might fall + * between two stored chunks in which case this function is + * called with the maximum stored chunk indices less than the + * requested chunk indices. + * * Return: Success: SUCCEED with information about the chunk * returned through the UDATA argument. * @@ -500,6 +506,13 @@ H5F_istore_found(H5F_t __unused__ *f, const haddr_t *addr, assert(udata); assert(lt_key); + /* Is this *really* the requested chunk? */ + for (i=0; i<udata->mesg.ndims; i++) { + if (udata->key.offset[i]>=lt_key->offset[i]+udata->mesg.dim[i]) { + HRETURN(FAIL); + } + } + /* Initialize return values */ udata->addr = *addr; udata->key.nbytes = lt_key->nbytes; diff --git a/src/H5Omtime.c b/src/H5Omtime.c index 0a6ebea..3daf15a 100644 --- a/src/H5Omtime.c +++ b/src/H5Omtime.c @@ -307,7 +307,7 @@ H5O_mtime_debug(H5F_t __unused__ *f, const void *_mesg, FILE *stream, tm = localtime(mesg); - strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S %z", tm); + strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S %Z", tm); fprintf(stream, "%*s%-*s %s\n", indent, "", fwidth, "Time:", buf); @@ -2829,7 +2829,7 @@ H5Tinsert (hid_t parent_id, const char *name, size_t offset, hid_t member_id) */ herr_t H5Tinsert_array (hid_t parent_id, const char *name, size_t offset, - int ndims, const size_t *dim, const int *perm, + int ndims, const size_t dim[/*ndims*/], const int *perm, hid_t member_id) { H5T_t *parent = NULL; /*the compound parent data type */ diff --git a/src/H5Tpublic.h b/src/H5Tpublic.h index 8f72510..fb37ddb 100644 --- a/src/H5Tpublic.h +++ b/src/H5Tpublic.h @@ -383,7 +383,7 @@ hbool_t H5Tcommitted (hid_t type_id); herr_t H5Tinsert (hid_t parent_id, const char *name, size_t offset, hid_t member_id); herr_t H5Tinsert_array (hid_t parent_id, const char *name, size_t offset, - int ndims, const size_t *dim, const int *perm, + int ndims, const size_t dim[], const int *perm, hid_t member_id); herr_t H5Tpack (hid_t type_id); diff --git a/tools/h5tools.c b/tools/h5tools.c index 0472074..bfb46a3 100644 --- a/tools/h5tools.c +++ b/tools/h5tools.c @@ -22,7 +22,11 @@ * size of that temporary buffer in bytes. For efficiency's sake, choose the * largest value suitable for your machine (for testing use a small value). */ +#if 0 #define H5DUMP_BUFSIZE (1024*1024) +#else +#define H5DUMP_BUFSIZE (1024) +#endif #define OPT(X,S) ((X)?(X):(S)) #define MIN(X,Y) ((X)<(Y)?(X):(Y)) @@ -258,6 +262,7 @@ h5dump_simple(FILE *stream, const h5dump_t *info, hid_t dset, hid_t p_type) for (i=0, p_nelmts=1; i<(hsize_t)ndims; i++) { p_nelmts *= p_max_idx[i]-p_min_idx[i]; } + if (0==p_nelmts) return 0; /*nothing to print*/ /* * Determine the strip mine size and allocate a buffer. The strip mine is |