diff options
Diffstat (limited to 'bin/debug-ohdr')
-rwxr-xr-x | bin/debug-ohdr | 26 |
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; |