Devel::MAT::Dumpfile - load and analyse a heap dump file
Devel::MAT::Dumpfile
use Devel::MAT::Dumpfile; my $df = Devel::MAT::Dumpfile->load( "path/to/the/file.pmat" ); TODO
This module provides a class that loads a heap dump file previously written by Devel::MAT::Dumper. It provides accessor methods to obtain various well-known root starting addresses, or to find arbitrary SVs by address. Each SV is represented by an instance of Devel::MAT::SV.
$df = Devel::MAT::Dumpfile->load( $path, %args )
Loads a heap dump file from the given path, and returns a new Devel::MAT::Dumpfile instance representing it.
Takes the following named arguments:
If given, should be a CODE reference to a function that will be called regularly during the loading process, and given a status message to update the user.
$version = $df->perlversion
Returns the version of perl that the heap dump file was created by, as a string in the form 5.14.2.
5.14.2
$endian = $df->endian
Returns the endian direction of the perl that the heap dump was created by, as either big or little.
big
little
$len = $df->uint_len
Returns the length in bytes of a uint field of the perl that the heap dump was created by.
$len = $df->ptr_len
Returns the length in bytes of a pointer field of the perl that the heap dump was created by.
$len = $df->nv_len
Returns the length in bytes of a double field of the perl that the heap dump was created by.
$ithreads = $df->ithreads
Returns a boolean indicating whether ithread support was enabled in the perl that the heap dump was created by.
%roots = $df->roots
Returns a key/value pair list giving the names and SVs at each of the roots.
%roots = $df->roots_strong
Returns a key/value pair list giving the names and SVs at each of the roots that count as strong references.
%roots = $df->roots_weak
$sv = $df->ROOT
For each of the root names given below, a method exists with that name which returns the SV at that root:
main_cv defstash mainstack beginav checkav unitcheckav initav endav strtabhv envgv incgv statgv statname tmpsv defgv argvgv argvoutgv argvout_stack fdpidav preambleav modglobalhv regex_padav sortstash firstgv secondgv debstash stashcache isarev registered_mros
%rootdescs = $df->root_descriptions
Returns a key/value pair list giving the (method) name and description text of each of the possible roots.
@svs = $df->heap
Returns all of the heap-allocated SVs, in no particular order
@ctxs = $df->contexts
Returns a list of Devel::MAT::Context objects representing the call context stack in the dumpfile.
$sv = $df->sv_at( $addr )
Returns the SV at the given address, or undef if one does not exist.
undef
(Note that this is unambiguous, as a Perl-level undef is represented by the immortal Devel::MAT::SV::UNDEF SV).
Devel::MAT::SV::UNDEF
Paul Evans <leonerd@leonerd.org.uk>
To install Devel::MAT, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Devel::MAT
CPAN shell
perl -MCPAN -e shell install Devel::MAT
For more information on module installation, please visit the detailed CPAN module installation guide.