SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

 
 

perl-Devel-TraceCalls rpm build for : OpenSuSE. For other distributions click perl-Devel-TraceCalls.

Name : perl-Devel-TraceCalls
Version : 0.04 Vendor : obs://build_opensuse_org/devel:languages:perl
Release : lp155.9.1 Date : 2023-07-20 19:50:11
Group : Development/Libraries/Perl Source RPM : perl-Devel-TraceCalls-0.04-lp155.9.1.src.rpm
Size : 0.07 MB
Packager : https://www_suse_com/
Summary : Track calls to subs, classes and object instances
Description :
*ALPHA CODE ALERT. This module may change before \"official\" release\"*.

Devel::TraceCalls allows subroutine calls to be tracked on a
per-subroutine, per-package, per-class, or per object instance basis. This
can be quite useful when trying to figure out how some poor thing is being
misused in a program you don\'t fully understand.

Devel::TraceCalls works on subroutines and classes by installing wrapper
subroutines and on objects by temporarily reblessing the objects in to
specialized subclasses with \"shim\" methods. Such objects are reblessed back
when the tracker is DESTROYed.

The default action is to log the calls to STDERR. Passing in a \'PreCall\',
or \'PostCall\' options disables this default behavior, you can reenable it
by manually setting \'< LogTo =\' \\*STDERR>>.

There are 4 ways to specify what to trace.

* 1

By Explicit Sub Name

trace_calls \"foo\", \"bar\"; ## trace to STDOUT.

trace_calls {
Subs => [ \"foo\", \"bar\" ],
...options...
};

The first form enables tracking with all Capture options enabled (other
than CaptureSelf which has no effect when capturing plain subs). The second
allows you to control the options.

* 2

By Package Name

trace_calls {
Package => \"My::Module\",
...options...
};


trace_calls {
Package => [ \"My::Module\", \"Another::Module\" ],
...options...
};

trace_calls {
Package => \"My::Module\",
Subs => [ \"foo\", \"bar\" ],
...options...
};

This allows you to provide a package prefix for subroutine names to be
tracked. If no \"Subs\" option is provided, all subroutines in the package
will be tracked.

This does not examine AATTISA like the \'Class\' and \'Objects\' (covered next)
techniques do.

* 3

By Class Name

trace_calls {
Class => \"My::Class\",
...options...
};

trace_calls {
Class => \"My::Class\",
...options...
};

trace_calls {
Class => \"My::Class\",
Subs => [ \"foo\", \"bar\" ],
...options...
};

This allows tracking of method calls (or things that look like method
calls) for a class and it\'s base classes. The $self ($_[0]) will not be
captured in \'Args\' (see Data Capture Format), but may be captured in \'Self\'
if \'CaptureSelf\' is enabled.

\'Devel::TraceCalls\' can\'t differentiate between \'$obj-\'foo( ... )> and
\'foo( $obj, ... )\', which can lead to extra calls being tracked if the
latter form is used. The good news is that this means that idioms like:

$meth = $obj->can( \"foo\" );
$meth->( $obj, ... ) if $meth;

are captured.

If a \'Subs\' parameter is provided, only the named methods will be tracked.
Otherwise all subs in the class and in all parent classes are tracked.

* 3

By Object Instance

trace_calls $obj1, $obj2;

trace_calls {
Objects => [ $obj1, $obj2 ],
...options...
};

trace_calls {
Objects => [ $obj1, $obj2 ],
Subs => [ \"foo\", \"bar\" ],
...options...
};

This allows tracking of method calls (or things that look like method
calls) for specific instances. The $self ($_[0]) will not be captured in
\'Args\', but may be captured in Self if CaptureSelf is enabled.

The first form (\'track $obj, ...\') enables all capture options, including
CaptureSelf.

RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/devel:/languages:/perl:/CPAN-D/15.5/noarch

Content of RPM  Provides Requires

Download
ftp.icm.edu.pl  perl-Devel-TraceCalls-0.04-lp155.9.1.noarch.rpm
     

Provides :
perl(Devel::TraceCalls)
perl-Devel-TraceCalls

Requires :
perl(:MODULE_COMPAT_5.26.1)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1


Content of RPM :
/usr/lib/perl5/vendor_perl/5.26.1/Devel
/usr/lib/perl5/vendor_perl/5.26.1/Devel/TraceCalls.pm
/usr/lib/perl5/vendor_perl/5.26.1/x86_64-linux-thread-multi
/usr/share/doc/packages/perl-Devel-TraceCalls
/usr/share/doc/packages/perl-Devel-TraceCalls/README
/usr/share/doc/packages/perl-Devel-TraceCalls/TODO
/usr/share/man/man3/Devel::TraceCalls.3pm.gz

 
ICM