Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/briandfoy/devel-trace

The Devel::Trace Perl module
https://github.com/briandfoy/devel-trace

debugging not-cpan-owner perl perl-module

Last synced: about 1 month ago
JSON representation

The Devel::Trace Perl module

Awesome Lists containing this project

README

        

NAME
Devel::Trace - Print out each line before it is executed (like `sh -x')

SYNOPSIS
perl -d:Trace program

DESCRIPTION
If you run your program with `perl -d:Trace program', this module will
print a message to standard error just before each line is executed. For
example, if your program looks like this:

#!/usr/bin/perl


print "Statement 1 at line 4\n";
print "Statement 2 at line 5\n";
print "Call to sub x returns ", &x(), " at line 6.\n";

exit 0;


sub x {
print "In sub x at line 12.\n";
return 13;
}

Then the `Trace' output will look like this:

>> ./test:4: print "Statement 1 at line 4\n";
>> ./test:5: print "Statement 2 at line 5\n";
>> ./test:6: print "Call to sub x returns ", &x(), " at line 6.\n";
>> ./test:12: print "In sub x at line 12.\n";
>> ./test:13: return 13;
>> ./test:8: exit 0;

This is something like the shell's `-x' option.

DETAILS
Inside your program, you can enable and disable tracing by doing

$Devel::Trace::TRACE = 1; # Enable
$Devel::Trace::TRACE = 0; # Disable

or

Devel::Trace::trace('on'); # Enable
Devel::Trace::trace('off'); # Disable

`Devel::Trace' exports the `trace' function if you ask it to:

import Devel::Trace 'trace';

Then if you want you just say

trace 'on'; # Enable
trace 'off'; # Disable

TODO
* You should be able to send the trace output to the filehandle of your
choice.

* You should be able to specify the format of the output.

* You should be able to get the output into a string.

We'll see.

Author
Mark-Jason Dominus (`[email protected]'), Plover Systems co.

See the `Devel::Trace.pm' Page at http://www.plover.com/~mjd/perl/Trace
for news and upgrades.