Devel::MAT::Tool::Identify - identify an SV by its referrers
Devel::MAT tool provides a command to identify an SV by walking up its tree of inrefs, printing useful information that helps to identify what it is by how it can be reached from well-known program roots.
pmat> identify 0x1bbf640 IO() at 0x1bbf640 is: └─the io of GLOB(@*I) at 0x1bbf628, which is: └─the ARGV GV
Prints a tree of the identification of the SV at the given address.
Takes the following named options:
- --depth D, -d D
Limits the output to the given number of steps away from the given initial SV.
Include weak direct references in the output (by default only strong direct ones will be included).
Include both weak and indirect references in the output.
- --no-elide, -n
Don't elide structure in the output.
REF()-type SVs will be skipped over, leading to a shorter neater output by removing this usually-unnecessary noise. If this option is not given, elided reference SVs will be notated by adding
(via RV)to the reference description.
Additionally, members of the symbol table will be printed as being root SVs, noting their symbol table name. This avoids additional nesting due to the stashes and globs that make up the symbol table. This can also cause SVs to be recognised as symbol table entries, when without it they might be cut off due to the depth limit.
Paul Evans <email@example.com>