++ed by:
Shawn M Moore

NAME

Signal::StackTrace::CarpLike - install signal handler to print a Carp-like stacktrace

SYNOPSIS

    # default installs the handler on USR1
    # these have the same result.

    use Signal::StackTrace::CarpLike;
    use Signal::StackTrace::CarpLike qw( USR1 );

    # install the handler on any valid signals

    use Signal::StackTrace::CarpLike qw( HUP );
    use Signal::StackTrace::CarpLike qw( HUP USR1 USR2 );

    # this will fail: FOOBAR is not a valid
    # signal (on any system I know of at least).

    use Signal::StackTrace::CarpLike qw( FOOBAR );

    # use it from the command line
    perl -MSignal::StackTrace::CarpLike=INT hanging-test.t

DESCRIPTION

This module is a fork of Signal::StackTrace, which has a uselessly verbose output format. But its interface is perfect, hence this module, which just uses "cluck" in Carp.

This will print a stack trace to STDERR -- similar to the sigtrap module but without the core dump using simpler syntax.

The module arguemts are signals on which to print the stack trace. For normally-terminating signals (e.g., TERM, QUIT) it is proably a bad idea in production environments but would be handy for tracking down errors; for non-trapable signals (e.g., KILL) this won't do anything.

The import will croak on signal names unknown to Config.pm ( see $Config{ sig_name } ).

The stack trace looks something like:

    INT at /Users/sartak/.perl/perls/perl-5.12.3/lib/5.12.3/perl5db.pl line 3749
            eval {...} called at /Users/sartak/.perl/perls/perl-5.12.3/lib/5.12.3/perl5db.pl line 3749
            Term::ReadLine::Gnu::AU::__ANON__[/Users/sartak/.perl/perls/perl-5.12.3/lib/site_perl/5.12.3/darwin-2level/Term/ReadLine/Gnu.pm:719]('Term::ReadLine=HASH(0x10099a6e0)', '\x{1}\x{1b}[4m\x{2}  DB<1> \x{1}\x{1b}[24m\x{2}') called at /Users/sartak/.perl/perls/perl-5.12.3/lib/site_perl/5.12.3/darwin-2level/Term/ReadLine/Gnu.pm line 331
            Term::ReadLine::Gnu::readline('Term::ReadLine=HASH(0x10099a6e0)', '  DB<1> ') called at /Users/sartak/.perl/perls/perl-5.12.3/lib/5.12.3/perl5db.pl line 6494
            DB::readline('  DB<1> ') called at /Users/sartak/.perl/perls/perl-5.12.3/lib/5.12.3/perl5db.pl line 2241
            DB::DB called at -e line 1
    at /Users/sartak/.perl/perls/perl-5.12.3/lib/5.12.3/perl5db.pl line 3749
            eval {...} called at /Users/sartak/.perl/perls/perl-5.12.3/lib/5.12.3/perl5db.pl line 3749
            Term::ReadLine::Gnu::AU::__ANON__[/Users/sartak/.perl/perls/perl-5.12.3/lib/site_perl/5.12.3/darwin-2level/Term/ReadLine/Gnu.pm:719]('Term::ReadLine=HASH(0x10099a6e0)', '\x{1}\x{1b}[4m\x{2}  DB<1> \x{1}\x{1b}[24m\x{2}') called at /Users/sartak/.perl/perls/perl-5.12.3/lib/site_perl/5.12.3/darwin-2level/Term/ReadLine/Gnu.pm line 331
            Term::ReadLine::Gnu::readline('Term::ReadLine=HASH(0x10099a6e0)', '  DB<1> ') called at /Users/sartak/.perl/perls/perl-5.12.3/lib/5.12.3/perl5db.pl line 6494
            DB::readline('  DB<1> ') called at /Users/sartak/.perl/perls/perl-5.12.3/lib/5.12.3/perl5db.pl line 2241
            DB::DB called at -e line 1

KNOWN BUGS

None, yet.

SEE ALSO

perlipc

Dealing with signals in perl.

sigtrap

Trapping signals with supplied handlers, getting core dumps.

Config

$Config{ sig_name } gives the valid signal names.

AUTHOR

Shawn M Moore <sartak@gmail.com>

ORIGINAL AUTHOR

Steven Lembark <lembark@wrkhors.com> was the original author of Signal::StackTrace from which this module was forked.

LICENSE

This code is licensed under the same terms as Perl 5.8 or any later version of perl at the users preference.




Hosting generously
sponsored by Bytemark