I'm trying to get a test script working, to determine if
Devel::Leak will actually be useful for me:
#!/usr/bin/debugperl -w
# http://www.perlmonks.org/?node_id=642604
use strict;
use Devel::Leak;
use Scalar::Util qw/weaken/;
my ($handle);
leak();
my $test1 = "foo";
my $count1 = Devel::Leak::NoteSV ($handle);
leak();
$test1 = undef;
my $count2 = Devel::Leak::CheckSV($handle);
print "$count1 $count2\n";
exit(0);
sub leak
{
for (1..3) {
my $h = {};
$h->{myself} = $h;
#weaken($h->{myself});
$h->{label} = 'testing $_';
}
}
I'm using the debian package perl-debug, which has compile-time options: DEBUGGING MULTIPLICITY PERL_IMPLICIT_CONTEX.
But I see no difference in the output with the debug perl, despite the wisdom of the monks at
node_id=642604 and
node_id=485409 and
node_id=447341.
All I get is hex addresses, and I don't see the destruction of "foo" which was stored in $test1:
debugperl test_mem_leak1.pl
new 0x79b490 :
new 0x79b4a0 :
new 0x79b4b0 :
new 0x79b4c0 :
new 0x79b4d0 :
new 0x79b4e0 :
new 0x79b4f0 :
new 0x79b500 :
new 0x6c7290 :
3014 3023
Is there a way to peek inside the leaks?