Slaven Rezić > Devel-Leak-0.04 > Devel::Leak

Download:
Devel-Leak-0.04.tar.gz

Dependencies

Annotate this POD (2)

Related Modules

Thread::Queue
Devel::LeakTrace
List::Util
File::Find
Devel::Peek
Apache::Leak
Devel::Size
Class::DBI
Data::Dumper
Scalar::Util
more...
By perlmonks.org

CPAN RT

New  1
Open  1
View/Report Bugs
Module Version: 0.04   Source  

NAME ^

Devel::Leak - Utility for looking for perl objects that are not reclaimed.

SYNOPSIS ^

  use Devel::Leak;
  ... setup code

  my $count = Devel::Leak::NoteSV($handle);

  ... code that may leak

  Devel::Leak::CheckSV($handle);

DESCRIPTION ^

Devel::Leak has two functions NoteSV and CheckSV.

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.

CheckSV is passed argument which holds a pointer to a table created by NoteSV. It re-walks the perl-internals and calls sv_dump() for any "things" which did not exist when NoteSV was called. It returns a count of the number of "things" now allocated.

CAVEATS ^

If new "things" have been created, CheckSV may (also) report additional "things" which are allocated by the sv_dump() code.

NOTES ^

Note that you perls older than 5.6.0 need to be built with -DDEBUGGING for sv_dump() to print anything, but counts are valid in any perl.

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.

AUTHOR ^

Nick Ing-Simmons <nick@ni-s.u-net.com>

syntax highlighting: