summaryrefslogtreecommitdiffstats
path: root/bin/debug-ohdr
diff options
context:
space:
mode:
Diffstat (limited to 'bin/debug-ohdr')
-rwxr-xr-xbin/debug-ohdr26
1 files changed, 26 insertions, 0 deletions
diff --git a/bin/debug-ohdr b/bin/debug-ohdr
new file mode 100755
index 0000000..f176a58
--- /dev/null
+++ b/bin/debug-ohdr
@@ -0,0 +1,26 @@
+#!/usr/bin/perl
+require 5.003;
+
+# Looks for lines emitted by H5O_open() and H5O_close() and tries to
+# determine which objects were not properly closed.
+
+while (<>) {
+ next unless /^([<>])(0x[\da-f]+|\d+)$/;
+ my ($op, $addr) = ($1, $2);
+
+ if ($op eq ">") {
+ # Open object
+ $obj{$addr} += 1;
+ } else {
+ # Close object
+ die unless $obj{$addr}>0;
+ $obj{$addr} -= 1;
+ delete $obj{$addr} unless $obj{$addr};
+ }
+}
+
+for (sort keys %obj) {
+ printf "%3d %s\n", $obj{$_}, $_;
+}
+
+exit 0;