From cfb32ec0cdd617d2be0b7348cdc84a76bba85621 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 4 Oct 2001 13:25:40 +0000 Subject: [PATCH] supports the new ADDR prefix for getaddrinfo() and freeaddrinfo() tracing --- memanalyze.pl | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/memanalyze.pl b/memanalyze.pl index a9dce2044..3006ffe70 100755 --- a/memanalyze.pl +++ b/memanalyze.pl @@ -167,6 +167,37 @@ while() { $fopens--; } } + } + # ADDR url.c:1282 getaddrinfo() = 0x5ddd + elsif($_ =~ /^ADDR ([^:]*):(\d*) (.*)/) { + # generic match for the filename+linenumber + $source = $1; + $linenum = $2; + $function = $3; + + if($function =~ /getaddrinfo\(\) = (\(nil\)|0x([0-9a-f]*))/) { + my $add = $2; + if($add eq "(nil)") { + ; + } + else { + $addrinfo{$add}=1; + $addrinfofile{$add}="$source:$linenum"; + $addrinfos++; + } + } + # fclose(0x1026c8) + elsif($function =~ /freeaddrinfo\(0x([0-9a-f]*)\)/) { + if(!$addrinfo{$1}) { + print "freeaddrinfo() without getaddrinfo(): $line\n"; + } + else { + $addrinfo{$1}=0; + $addrinfos--; + } + } + + } else { print "Not recognized prefix line: $line\n"; @@ -203,6 +234,15 @@ if($fopens) { } } +if($addrinfos) { + print "IPv6-style name resolve data left at:\n"; + for(keys %addrinfofile) { + if($addrinfo{$_} == 1) { + print "getaddrinfo() called at ".$addrinfofile{$_}."\n"; + } + } +} + if($verbose) { print "Mallocs: $mallocs\n", "Reallocs: $reallocs\n",