Devel-Events
view release on metacpan or search on metacpan
lib/Devel/Events/Generator/LineTrace.pm view on Meta::CPAN
BEGIN { $^P |= 0x02 }
package Devel::Events::Generator::LineTrace;
# vim: set ts=2 sw=2 noet nolist :
# ABSTRACT: Generate C<executing_line> events using the perl debugger api
our $VERSION = '0.10';
use Moose;
with qw/Devel::Events::Generator/;
use Scalar::Util qw/weaken/;
my $SINGLETON;
sub DB::DB {
if ( $SINGLETON ) {
my ( $package, $file, $line ) = caller;
return if $package =~ /^Devel::Events::/;
$SINGLETON->line( package => $package, file => $file, line => $line );
}
}
sub enable {
my $self = shift;
$SINGLETON = $self;
weaken($SINGLETON);
}
sub disable {
$SINGLETON = undef;
}
sub line {
my ( $self, @args ) = @_;
$self->send_event( executing_line => @args );
}
lib/Devel/Events/Generator/Require.pm view on Meta::CPAN
package Devel::Events::Generator::Require;
# vim: set ts=2 sw=2 noet nolist :
# ABSTRACT: Event generator for loading of code using C<require>
our $VERSION = '0.10';
use strict;
use warnings;
use Try::Tiny;
use Sub::Uplevel;
use Scalar::Util qw(weaken);
my $SINGLETON;
BEGIN {
# before Moose or anything else is parsed, we overload CORE::GLOBAL::require
require Carp::Heavy;
*CORE::GLOBAL::require = sub {
my $file = shift;
lib/Devel/Events/Generator/Require.pm view on Meta::CPAN
}
}
use Moose;
with qw(Devel::Events::Generator);
sub enable {
my $self = shift;
$SINGLETON = $self;
weaken($SINGLETON);
}
sub disable {
$SINGLETON = undef;
}
sub try_require {
my ( $self, @args ) = @_;
$self->send_event( try_require => @args );
lib/Devel/Events/Generator/SubTrace.pm view on Meta::CPAN
my ( $self, @data ) = @_;
local $IGNORE = 1;
$self->send_event( leave_sub => @data );
}
sub enable {
my $self = shift;
local $IGNORE = 1;
$SINGLETON = $self;
Scalar::Util::weaken($SINGLETON);
}
sub disable {
$SINGLETON = undef;
}
__PACKAGE__;
__END__
( run in 2.184 seconds using v1.01-cache-2.11-cpan-65fba6d93b7 )