NAME
`Devel::MAT' - Perl Memory Analysis Tool
DESCRIPTION
A `Devel::MAT' instance loads a heapdump file, and provides a container
to store analysis tools to work on it. Tools may be provided that
conform to the Devel::MAT::Tool API, which can help analyse the data and
interact with the explorer user interface by using the methods in the
Devel::MAT::UI package.
File Format
The dump file format is still under development, so at present no
guarantees are made on whether files can be loaded over mismatching
versions of `Devel::MAT'. However, as of version 0.11 the format should
be more extensible, allowing new SV fields to be added without breaking
loading - older tools will ignore new fields and newer tools will just
load undef for fields absent in older files. As the distribution
approaches maturity the format will be made more stable.
CONSTRUCTOR
$pmat = Devel::MAT->load( $path, %args )
Loads a heap dump file from the given path, and returns a new
`Devel::MAT' instance wrapping it.
METHODS
$df = $pmat->dumpfile
Returns the underlying Devel::MAT::Dumpfile instance backing this
analysis object.
@tools = $pmat->available_tools
Lists the Devel::MAT::Tool classes that are installed and available.
$tool = $pmat->load_tool( $name )
Loads the named Devel::MAT::Tool class.
@text = $pmat->identify( $sv, %opts )
Traces the tree of inrefs from `$sv' back towards the known roots,
returning a textual description as a list of lines of text.
The lines of text, when printed, will form a reverse reference tree,
showing the paths from the given SV back to the roots.
This method will load Devel::MAT::Tool::Inrefs if it isn't yet loaded.
The following named options are recognised:
depth => INT
If specified, stop recursing after the specified count. A depth of 1
will only print immediately referring SVs, 2 will print the
referrers of those, etc.
strong => BOOL
direct => BOOL
Specifies the type of inrefs followed. By default all inrefs are
followed. Passing `strong' will follow only strong direct inrefs.
Passing `direct' will follow only direct inrefs.
$sv = $pmat->find_symbol( $name )
Attempts to walk the symbol table looking for a symbol of the given
name, which must include the sigil.
$Package::Name::symbol_name => to return a SCALAR SV
@Package::Name::symbol_name => to return an ARRAY SV
%Package::Name::symbol_name => to return a HASH SV
&Package::Name::symbol_name => to return a CODE SV
$gv = $pmat->find_glob( $name )
Attempts to walk to the symbol table looking for a symbol of the given
name, returning the `GLOB' object if found.
AUTHOR
Paul Evans