| IO-Lambda documentation | view source | Contained in the IO-Lambda distribution. |
IO::Lambda::Backtrace - backtrace chains of events
The module makes it easier to debug chains of events, when a lambda awaits for
another, this one in turn for another, etc etc. The class
IO::Lambda::Backtrace represents a set of such stacks, because a lambda can
be awaited by more than one lambda. Each stack is an array of items where each
contains the caller lambda and the invocation point. The class provides helper
methods for printing this information in readable form.
The module relies on the debug information about invocation points collected by
IO::Lambda. By default, there's very little information collected, so in
order to increase verbosity use IO::Lambda::DEBUG_CALLER flag, either
directly or through $ENV{IO_LAMBDA_DEBUG} = 'caller'. If the flag is set to
1, lambdas collect invocation points. If the flag is set to 2, then also the
additional perl stack trace is added.
use IO::Lambda;
$IO::Lambda::DEBUG_CALLER = 1;
lambda {
...
warn this-> backtrace-> as_text;
}
or from command line
env IO_LAMBDA_DEBUG=caller=2 ./myscript
Extracts the information of the current chain of events and creates a new blessed reference of it.
Returns the backtrace information formatted as text, ready to display
Warns with the backtrace log
Dies with the backtrace log
Dmitry Karasik, <dmitry@karasik.eu.org>.
The ideas of backtracing threads of events, and implementing backtrace objects passable through execition stack are proposed by Ben Tilly.
| IO-Lambda documentation | view source | Contained in the IO-Lambda distribution. |