NAME
Devel::Events::Generator::SubTrace - generate executing_line
events using the perl debugger api.
SYNOPSIS
my $g = Devel::Events::Generator::SubTrace->new( handler => $h );
$g->enable();
# every subroutine will have two events fired, on entry and exit
$g->disable();
DESCRIPTION
This Devel::Events generator will fire sub tracing events using DB::sub
, a perl debugger hook.
Only one instance may be enabled at a given time. Use Devel::Events::Handler::Multiplex to deliver events to multiple handlers.
Subroutines inside the Devel::Events namespace or it's children will be skipped.
EVENTS
- enter_sub
-
When the generator is enabled, this event will fire for every subroutine, just before it is executed.
Subroutines in a package starting with
Devel::Events::
will not be reported.- name
-
The name of the subroutine (or it's
overload::StrVal
if it has none). - code
-
A code reference to the subroutine.
- args
-
A copy of the arguments list.
\@_
causes segfaults but[ @_ ]
does not. Bummer ;-) - depth
-
The current depth of the call stack.
- wantarray
-
The context of the call as given by
wantarray
- leave_sub
-
Exactly like
enter_sub
, but fired just after leaving the subroutine.All the fields of
enter_sub
are passed.Additional fields:
ret
The return value of the subroutine.
METHODS
- enable
-
Enable this generator instance, disabling any other instance of Devel::Events::Generator::SubTrace.
- disable
-
Stop firing events.
- enter_sub
-
Called by
DB::sub
. Sends theenter_sub
event. - leave_sub
-
Called by
DB::sub
. Sends theleave_sub
event.
SEE ALSO
perldebguts, Devel::CallTrace, DB, Devel::ebug, perl5db.pl
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 176:
You can't have =items (as at line 182) unless the first thing after the =over is an =item