diff options
Diffstat (limited to 'tests/memanalyze.pl')
-rwxr-xr-x | tests/memanalyze.pl | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/tests/memanalyze.pl b/tests/memanalyze.pl index 524634969..54117f8ea 100755 --- a/tests/memanalyze.pl +++ b/tests/memanalyze.pl @@ -31,6 +31,7 @@ my $mallocs=0; my $callocs=0; my $reallocs=0; my $strdups=0; +my $wcsdups=0; my $showlimit; while(1) { @@ -220,6 +221,25 @@ while(<FILE>) { newtotal($totalmem); $strdups++; } + elsif($function =~ /wcsdup\(0x([0-9a-f]*)\) \((\d*)\) = 0x([0-9a-f]*)/) { + # wcsdup(a5b50) (8) = df7c0 + + $dup = $1; + $size = $2; + $addr = $3; + $getmem{$addr}="$source:$linenum"; + $sizeataddr{$addr}=$size; + + $totalmem += $size; + + if($trace) { + printf("WCSDUP: $size bytes at %s, makes totally: %d bytes\n", + $getmem{$addr}, $totalmem); + } + + newtotal($totalmem); + $wcsdups++; + } else { print "Not recognized input line: $function\n"; } @@ -378,8 +398,9 @@ if($verbose) { "Reallocs: $reallocs\n", "Callocs: $callocs\n", "Strdups: $strdups\n", + "Wcsdups: $wcsdups\n", "Frees: $frees\n", - "Allocations: ".($mallocs + $callocs + $reallocs + $strdups)."\n"; + "Allocations: ".($mallocs + $callocs + $reallocs + $strdups + $wcsdups)."\n"; print "Maximum allocated: $maxmem\n"; } |