NAME
Devel::MAT::Tool::Object::Pad
- extend Devel::MAT
to analyse Object::Pad
-based programs
DESCRIPTION
This third-party Devel::MAT
tool adds commands and other support to help with analysis of programs that use Object::Pad. Once installed, it is loaded automatically by the pmat shell whenever a dumpfile that uses Object::Pad
is loaded.
COMMANDS
classes
Prints a list of the Object::Pad
classes and roles.
pmat> classes
role ARole at C_STRUCT(Object::Pad/ClassMeta.role) at 0x55d7c17a1550
class HashClass at C_STRUCT(Object::Pad/ClassMeta.class) at 0x55d7c1776b70
...
fields
Prints the values of all the fields of a given instance of an Object::Pad
-based class.
pmat> fields 0x55d7c173d4b8
The field AV ARRAY(3)=NativeClass at 0x55d7c173d4b8
Ix Field Value
0 $sfield SCALAR(UV) at 0x55d7c173d938 = 123
...
EXTENSIONS TO COMMANDS
outrefs, identify, ...
Outbound references from ARRAY SVs that are the backing fields of object instances will print elements using field names, instead of plain indexes.
pmat> outrefs 0x55d7c173d4b8
s the $sfield field SCALAR(UV) at 0x55d7c173d938
...
pmat> identify 0x55d7c17606d8
REF() at 0x55d7c17606d8 is:
└─the %hfield field of ARRAY(3)=NativeClass at 0x55d7c173d4b8, which is:
...
SV METHODS
This tool adds the following SV methods.
objectpad_class (STASH)
$class = $stash->objectpad_class
If the stash is the package for an Object::Pad
-based class, returns the C_STRUCT
containing information about the class itself. Otherwise, returns undef
.
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>