Wrapper script around gdb and bsmtp
btraceback /path/to/binary pid
btraceback is a wrapper shell script around the gdb debugger (or dbx on Solaris systems) and bsmtp, provided for debugging purposes.
btraceback is called by the exception handlers of the Bacula daemons during a crash. It can also be called interactively to view the current state of the threads belonging to a process, but this is not recommended unless you are trying to debug a problem (see below).
In order to work properly, debugging symbols must be available to the debugger on the system, and gdb, or dbx (on Solaris systems) must be available in the $PATH.
If the Director or Storage daemon runs under a non-root uid, you will probably need to be modify the btraceback script to elevate privileges for the call to gdb/dbx, to ensure it has the proper permissions to debug when called by the daemon.
Although Bacula's use of btraceback within its exception handlers is always safe, manual or interactive use of btraceback is subject to the same risks than live debugging of any program, which means it could cause Bacula to crash under rare and abnormal circumstances. Consequently we do not recommend manual use of btraceback in production environments unless it is required for debugging a problem.
btracback relies on $PATH to find the debugger.
The script itself.
symbolic link to /usr/lib/bacula/btraceback
the GDB command batch used to output a stack trace
This manual page was written by Lucas B. Cohen <[email protected]>