diff --git a/tests/memanalyze.pl b/tests/memanalyze.pl index 4c1f7630d..49a21aa06 100755 --- a/tests/memanalyze.pl +++ b/tests/memanalyze.pl @@ -9,6 +9,7 @@ my $mallocs=0; my $reallocs=0; my $strdups=0; +my $showlimit; while(1) { if($ARGV[0] eq "-v") { @@ -19,7 +20,14 @@ while(1) { $trace=1; shift @ARGV; } - last; + elsif($ARGV[0] eq "-l") { + # only show what alloc that caused a memlimit failure + $showlimit=1; + shift @ARGV; + } + else { + last; + } } my $maxmem; @@ -38,6 +46,7 @@ my $file = $ARGV[0]; if(! -f $file) { print "Usage: memanalyze.pl [options] \n", "Options:\n", + " -l memlimit failure displayed\n", " -v Verbose\n", " -t Trace\n"; exit; @@ -45,6 +54,19 @@ if(! -f $file) { open(FILE, "<$file"); +if($showlimit) { + while() { + if(/^LIMIT.*memlimit$/) { + print $_; + last; + } + } + close(FILE); + exit; +} + + + while() { chomp $_; $line = $_;