Devel::Backtrace.3pm

Langue: en

Version: 2007-05-20 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

NAME

Devel::Backtrace - Object-oriented backtrace

VERSION

This is version 0.05.

SYNOPSIS

     my $backtrace = Devel::Backtrace->new;
 
     print $backtrace; # use automatic stringification
                       # See EXAMPLES to see what the output might look like
 
     print $backtrace->point(0)->line;
 
 

METHODS


Devel::Backtrace->new([$start])

Constructs a new "Devel::Backtrace" which is filled with all the information "caller($i)" provides, where $i starts from $start. If no argument is given, $start defaults to 0.

If $start is 1 (or higher), the backtrace won't contain the information that (and where) Devel::Backtrace::new() was called.

$backtrace->point($i)


$backtrace->point($i)

Returns the i'th tracepoint as a Devel::Backtrace::Point object (see its documentation for how to access every bit of information).

Note that the following code snippet will print the information of "caller($start+$i)":

     print Devel::Backtrace->new($start)->point($i)
 
 

$backtrace->points()


$backtrace->points()

Returns a list of all tracepoints. In scalar context, the number of tracepoints is returned.

$backtrace->skipme([$package])


$backtrace->skipme([$package])

This method deletes all leading tracepoints that contain information about calls within $package. Afterwards the $backtrace will look as though it had been created with a higher value of $start.

If the optional parameter $package is not given, it defaults to the calling package.

The effect is similar to what the Carp module does.

This module ships with an example ``skipme.pl'' that demonstrates how to use this method.

$backtrace->to_string()


$backtrace->to_string()

Returns a string that contains one line for each tracepoint. It will contain the information from "Devel::Backtrace::Point"'s to_string() method. To get more information, use the to_long_string() method.

Note that you don't have to call to_string() if you print a "Devel::Backtrace" object or otherwise treat it as a string, as the stringification operator is overloaded.

See ``EXAMPLES''.

$backtrace->to_long_string()


$backtrace->to_long_string()

Returns a very long string that contains several lines for each trace point. The result will contain every available bit of information. See ``to_long_string'' in Devel::Backtrace::Point for an example of what the result looks like.

EXAMPLES

A sample stringification might look like this:
     Devel::Backtrace::new called from main (foo.pl:10)
     main::bar called from main (foo.pl:6)
     main::foo called from main (foo.pl:13)
 
 

SEE ALSO

Devel::StackTrace does mostly the same as this module. I'm afraid I haven't noticed it until I uploaded this module.

Carp::Trace is a simpler module which gives you a backtrace in string form.

AUTHOR

Christoph Bussenius <pepe@cpan.org> Copyright (C) 2007 Christoph Bussenius.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.