class Backtrace
Snapshot of the dynamic call stack
A backtrace shows the dynamic call stack, usually leading up to a point where an exception was thrown.
It is a List of Backtrace::Frame objects. Its default stringification excludes backtrace frames that are deemed unnecessary or confusing, for example routines like &die
are hidden by default.
Methods
method new
Defined as:
multi method new(--> Backtrace)
Creates a new backtrace, using its calling location as the origin of the backtrace.
my = Backtrace.new;
method gist
Defined as:
multi method gist(Backtrace: --> Str)
Returns string "Backtrace(42 frames)"
where the number indicates the number of frames available via list method.
method Str
Defined as:
multi method Str(Backtrace:)
Returns a concise string representation of the backtrace, omitting routines marked as is hidden-from-backtrace
, and at the discretion of the implementation, also some routines from the setting.
my = Backtrace.new;say .Str;
method full
Defined as:
multi method full(Backtrace:)
Returns a full string representation of the backtrace, including hidden frames, compiler-specific frames and those from the setting.
my = Backtrace.new;say .full;
method list
Defined as:
multi method list(Backtrace:)
Returns a list of Backtrace::Frame objects for this backtrace.
method summary
Defined as:
method summary(Backtrace: --> Str)
Returns a summary string representation of the backtrace, filtered by !.is-hidden && (.is-routine || !.is-setting)
.
This program:
sub innersub outerouter;
results in:
in method new at SETTING::src/core/Backtrace.pm6 line 85in sub inner at test.p6 line 1in sub outer at test.p6 line 2in block <unit> at test.p6 line 3
method concise
Defined as:
method concise(Backtrace:)
Returns a concise string representation of the backtrace, filtered by !.is-hidden && .is-routine && !.is-setting
.
This program:
sub innersub outerouter;
results in:
in sub inner at test.p6 line 1in sub outer at test.p6 line 2
method map
Defined as:
multi method map(Backtrace: --> Seq)
It invokes &block
for each element and gathers the return values in a sequence and returns it.
This program:
sub innersub outerouter;
results in:
SETTING::src/core/Backtrace.pm6: 85SETTING::src/core/Backtrace.pm6: 85test.p6: 1test.p6: 2test.p6: 3test.p6: 1
method flat
Defined as:
multi method flat(Backtrace:)
Returns the backtrace same as list.
Type Graph
Backtrace