findleak.pl
来自「nasm的全套源代码,有些我做了些修改,以方便您更方便更容易调试成功,方便学习做」· PL 代码 · 共 43 行
PL
43 行
#!/usr/bin/perl
# From: Ed Beroset <beroset@mindspring.com>
my %mem = {};
my %alloc = {};
while(<>)
{
if (/realloc\((0x[0-9a-f]+).*\).*returns \((0x[0-9a-f]+)/)
{
$mem{$1}--;
if ($mem{$1} != 0) {
print "free before alloc! $_";
}
if ($mem{$2} != 0) {
print "memory leak! $_";
}
$mem{$2}++;
$alloc{$2} = $_;
}
elsif (/free\((0x[0-9a-f]+)/)
{
$mem{$1}--;
if ($mem{$1} != 0) {
print "free before alloc! $_";
}
}
elsif (m/returns (0x[0-9a-f]+)/)
{
if ($mem{$1} != 0) {
print "memory leak! $_";
}
$mem{$1}++;
$alloc{$1} = $_;
}
}
foreach $goo (sort keys %mem)
{
if ($mem{$goo})
{
print "$mem{$goo} $alloc{$goo}";
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?