NAME¶
Devel::bt - Automatic gdb backtraces on errors
SYNOPSIS¶
$ perl -d:bt -MB -e'(bless \(my $o = 0), q{B::SV})->REFCNT'
#0 0x00007f9c3215ab0e in __libc_waitpid (pid=<value optimized out>, stat_loc=0x7fff4c5ffbe8, options=<value optimized out>) at ../sysdeps/unix/sysv/linux/waitpid.c:32
#1 0x00007f9c319168c1 in backtrace () at bt.xs:129
#2 0x00007f9c319168ec in sighandler (sig=11) at bt.xs:135
#3 <signal handler called>
#4 0x00007f9c316c8ccf in XS_B__SV_REFCNT (my_perl=0x151c010, cv=0x177bfb8) at B.c:3360
#5 0x000000000057d5a0 in Perl_pp_entersub (my_perl=0x151c010) at pp_hot.c:2882
#6 0x000000000051a331 in Perl_runops_debug (my_perl=0x151c010) at dump.c:2049
#7 0x0000000000454ab0 in S_run_body (my_perl=0x151c010, oldscope=1) at perl.c:2308
#8 0x0000000000453d78 in perl_run (my_perl=0x151c010) at perl.c:2233
#9 0x00000000004230fd in main (argc=6, argv=0x7fff4c600788, env=0x7fff4c6007c0) at perlmain.c:117
DESCRIPTION¶
This module, when enabled, registers a handler for certain types of fatal
errors, like segmentation faults, and, once such an error occurs, prints a
debugger backtrace to standard output before exiting the program.
It is intended to be used to debug crashes in situations where running the
failing program directly under a debugger is not possible, for example when
trying to get more information from cpantesters or from users unfamiliar with
gdb.
HOW IT WORKS¶
When being imported, a signal handler for the following signals is registered:
- •
- "SIGILL"
- •
- "SIGFPE"
- •
- "SIGBUS"
- •
- "SIGSEGV"
- •
- "SIGTRAP"
- •
- "SIGABRT"
- •
- "SIGQUIT"
Once the program causes an error that results in one of the above signals being
sent to it, the signal handler will be called, and fork off a process running
"gdb" and generating a backtrace of the running program, which will
then be printed to standard output.
ACKNOWLEDGEMENTS¶
This software is based on parts of "glib", which is written by:
- •
- Peter Mattis <petm@xcf.berkeley.edu>
- •
- Spencer Kimball <spencer@xcf.berkeley.edu>
- •
- Josh MacDonald <jmacd@xcf.berkeley.edu>
- •
- Shawn T. Amundson <amundson@gimp.org>
- •
- Jeff Garzik <jgarzik@pobox.com>
- •
- Raja R Harinath <harinath@cs.umn.edu>
- •
- Tim Janik <timj@gtk.org>
- •
- Elliot Lee <sopwith@redhat.com>
- •
- Tor Lillqvist <tml@iki.fi>
- •
- Paolo Molaro <lupus@debian.org>
- •
- Havoc Pennington <hp@pobox.com>
- •
- Manish Singh <yosh@gimp.org>
- •
- Owen Taylor <otaylor@gtk.org>
- •
- Sebastian Wilhelmi <wilhelmi@ira.uka.de>
- •
- and others
"glib" is licensed under The GNU Lesser General Public License,
Version 2.
AUTHOR¶
Florian Ragwitz <rafl@debian.org>
COPYRIGHT AND LICENSE¶
This software is Copyright (c) 2010 by Florian Ragwitz.
This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999