18 Mar 2004 17:27:09 UTC
- Distribution: Devel-Leak
- Module version: 0.03
- Source (raw)
- Browse (raw)
- How to Contribute
- Issues (2)
- Testers (15006 / 31 / 0)
- KwaliteeBus factor: 0
- 100.00% Coverage
- License: unknown
- Activity24 month
- Download (3.16KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version
Why not adopt me?This distribution is up for adoption! If you're interested then please contact the PAUSE module admins via email.
Devel::Leak - Utility for looking for perl objects that are not reclaimed.
use Devel::Leak; ... setup code my $count = Devel::Leak::NoteSV($handle); ... code that may leak Devel::Leak::CheckSV($handle);
Devel::Leak has two functions
NoteSVwalks 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.
CheckSVis 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
NoteSVwas called. It returns a count of the number of "things" now allocated.
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" have been created,
CheckSVmay (also) report additional "things" which are allocated by the sv_dump() code.
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.
Nick Ing-Simmons <email@example.com>