logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Author

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

perl v5.40.0                                       2024-10-20                                          Leak(3pm)

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" have been created, "CheckSV" may (also) report additional "things" which are allocated by
       the sv_dump() code.

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.

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.

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);

See Also