/usr/lib/perl5/Devel/Leak.pm is in libdevel-leak-perl 0.03-2build3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | package Devel::Leak;
use 5.005;
use vars qw($VERSION);
require DynaLoader;
use base qw(DynaLoader);
$VERSION = '0.03';
bootstrap Devel::Leak;
1;
__END__
=head1 NAME
Devel::Leak - Utility for looking for perl objects that are not reclaimed.
=head1 SYNOPSIS
use Devel::Leak;
... setup code
my $count = Devel::Leak::NoteSV($handle);
... code that may leak
Devel::Leak::CheckSV($handle);
=head1 DESCRIPTION
Devel::Leak has two functions C<NoteSV> and C<CheckSV>.
C<NoteSV> walks the perl internal table of allocated SVs (scalar values) - (which
actually contains arrays and hashes too), and records their addresses in a
table. It returns a count of these "things", and stores a pointer to the
table (which is obtained from the heap using malloc()) in its argument.
C<CheckSV> is passed argument which holds a pointer to a table created by
C<NoteSV>. It re-walks the perl-internals and calls sv_dump() for any "things"
which did not exist when C<NoteSV> was called. It returns a count of the number
of "things" now allocated.
=head1 CAVEATS
Note that you need a perl built with -DDEBUGGING for
sv_dump() to print anything, but counts are valid in any perl.
If new "things" I<have> been created, C<CheckSV> may (also) report additional
"things" which are allocated by the sv_dump() code.
=head1 HISTORY
This little utility module was part of Tk until the variable renaming
in perl5.005 made it clear that Tk had no business knowing this much
about the perl internals.
=head1 AUTHOR
Nick Ing-Simmons <nick@ni-s.u-net.com>
=cut
|