mirror of https://github.com/moparisthebest/curl
added -t for trace, helps searching for leaks and similar
This commit is contained in:
parent
907dabed5d
commit
aa5ff53bcf
|
@ -10,6 +10,9 @@ do {
|
||||||
if($ARGV[0] eq "-v") {
|
if($ARGV[0] eq "-v") {
|
||||||
$verbose=1;
|
$verbose=1;
|
||||||
}
|
}
|
||||||
|
elsif($ARGV[0] eq "-t") {
|
||||||
|
$trace=1;
|
||||||
|
}
|
||||||
} while (shift @ARGV);
|
} while (shift @ARGV);
|
||||||
|
|
||||||
my $maxmem;
|
my $maxmem;
|
||||||
|
@ -43,11 +46,11 @@ while(<STDIN>) {
|
||||||
print "FREE ERROR: Previously freed at: ".$getmem{$addr}."\n";
|
print "FREE ERROR: Previously freed at: ".$getmem{$addr}."\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(0 && $verbose) {
|
|
||||||
print "malloc at ".$getmem{$addr}." is freed again at $source:$linenum\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
$totalmem -= $sizeataddr{$addr};
|
$totalmem -= $sizeataddr{$addr};
|
||||||
|
if($trace) {
|
||||||
|
print "FREE: malloc at ".$getmem{$addr}." is freed again at $source:$linenum\n";
|
||||||
|
printf("FREE: %d bytes freed, left allocated: $totalmem bytes\n", $sizeataddr{$addr});
|
||||||
|
}
|
||||||
|
|
||||||
newtotal($totalmem);
|
newtotal($totalmem);
|
||||||
$frees++;
|
$frees++;
|
||||||
|
@ -69,8 +72,9 @@ while(<STDIN>) {
|
||||||
$sizeataddr{$addr}=$size;
|
$sizeataddr{$addr}=$size;
|
||||||
$totalmem += $size;
|
$totalmem += $size;
|
||||||
|
|
||||||
if(0 && $verbose) {
|
if($trace) {
|
||||||
print "malloc($size) at $source:$linenum\n";
|
print "MALLOC: malloc($size) at $source:$linenum",
|
||||||
|
" makes totally $totalmem bytes\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
newtotal($totalmem);
|
newtotal($totalmem);
|
||||||
|
@ -84,11 +88,18 @@ while(<STDIN>) {
|
||||||
$newaddr = $3;
|
$newaddr = $3;
|
||||||
|
|
||||||
$totalmem -= $sizeataddr{$oldaddr};
|
$totalmem -= $sizeataddr{$oldaddr};
|
||||||
|
if($trace) {
|
||||||
|
printf("REALLOC: %d less bytes and ", $sizeataddr{$oldaddr});
|
||||||
|
}
|
||||||
$sizeataddr{$oldaddr}=0;
|
$sizeataddr{$oldaddr}=0;
|
||||||
|
|
||||||
$totalmem += $newsize;
|
$totalmem += $newsize;
|
||||||
$sizeataddr{$newaddr}=$newsize;
|
$sizeataddr{$newaddr}=$newsize;
|
||||||
|
|
||||||
|
if($trace) {
|
||||||
|
printf("%d more bytes ($source:$linenum)\n", $newsize);
|
||||||
|
}
|
||||||
|
|
||||||
newtotal($totalmem);
|
newtotal($totalmem);
|
||||||
$reallocs++;
|
$reallocs++;
|
||||||
|
|
||||||
|
@ -106,6 +117,11 @@ while(<STDIN>) {
|
||||||
|
|
||||||
$totalmem += $size;
|
$totalmem += $size;
|
||||||
|
|
||||||
|
if($trace) {
|
||||||
|
printf("STRDUP: $size bytes at %s, makes totally: %d bytes\n",
|
||||||
|
$getmem{$addr}, $totalmem);
|
||||||
|
}
|
||||||
|
|
||||||
newtotal($totalmem);
|
newtotal($totalmem);
|
||||||
$strdups++;
|
$strdups++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue