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>

