#include <bug.h>
Inheritance diagram for sc::Debugger:
Public Member Functions | |
Debugger (const char *exec=0) | |
Debugger (const Ref< KeyVal > &) | |
The KeyVal constructor understands the following keywords:. | |
Debugger (StateIn &) | |
virtual void | debug (const char *reason=0) |
The debug member attempts to start a debugger running on the current process. | |
virtual void | traceback (const char *reason=0) |
The traceback member attempts a stack traceback for the current process. | |
virtual void | set_debug_on_signal (int) |
Turn on or off debugging on a signel. The default is on. | |
virtual void | set_traceback_on_signal (int) |
Turn on or off traceback on a signel. The default is on. | |
virtual void | set_exit_on_signal (int) |
Turn on or off exit after a signel. The default is on. | |
virtual void | set_wait_for_debugger (int) |
Turn on or off running an infinite loop after the debugger is started. | |
virtual void | handle (int sig) |
The Debugger will be actived when sig is caught. | |
virtual void | handle_defaults () |
This calls handle(int) with all of the major signals. | |
virtual void | set_prefix (const char *p) |
This sets a prefix which preceeds all messages printing by Debugger. | |
virtual void | set_prefix (int p) |
Set the prefix to the decimal represention of p followed by a ": ". | |
virtual void | set_cmd (const char *) |
Sets the command to be exectuted when debug is called. | |
virtual void | default_cmd () |
Calls set_cmd with a hopefully suitable default. | |
virtual void | set_exec (const char *) |
Set the name of the exectuble for the current process. | |
virtual void | got_signal (int sig) |
Called with signal sig is received. This is mainly for internal use. | |
void | save_data_state (StateOut &) |
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. | |
Static Public Member Functions | |
static void | set_default_debugger (const Ref< Debugger > &) |
Set the global default debugger. The initial value is null. | |
static Debugger * | default_debugger () |
Return the global default debugger. | |
Protected Member Functions | |
void | init () |
Protected Attributes | |
char * | prefix_ |
char * | exec_ |
char * | cmd_ |
volatile int | debugger_ready_ |
int | debug_ |
int | traceback_ |
int | exit_on_signal_ |
int | sleep_ |
int | wait_for_debugger_ |
int | handle_sigint_ |
int * | mysigs_ |
Static Protected Attributes | |
static Debugger * | default_debugger_ |
It can try things such as start a debugger running where the program died or it can attempt to produce a stack traceback showing roughly where the program died. These attempts will not always succeed.
The KeyVal constructor understands the following keywords:.
debug
traceback
exit
wait_for_debugger
sleep
handle_defaults
prefix
cmd
virtual void sc::Debugger::debug | ( | const char * | reason = 0 |
) | [virtual] |
The debug member attempts to start a debugger running on the current process.
virtual void sc::Debugger::traceback | ( | const char * | reason = 0 |
) | [virtual] |
The traceback member attempts a stack traceback for the current process.
A symbol table must be saved for the executable if any sense is to be made of the traceback. Tracebacks are currently available only for a limited number of architectures.
virtual void sc::Debugger::set_wait_for_debugger | ( | int | ) | [virtual] |
Turn on or off running an infinite loop after the debugger is started.
This loop gives the debugger a chance to attack to the process. The default is on.
virtual void sc::Debugger::set_cmd | ( | const char * | ) | [virtual] |
Sets the command to be exectuted when debug is called.
The character sequence "$(EXEC)" is replaced by the executable name (see set_exec), "$(PID)" is replaced by the current process id, and "$(PREFIX)" is replaced by the prefix.
virtual void sc::Debugger::set_exec | ( | const char * | ) | [virtual] |
void sc::Debugger::save_data_state | ( | StateOut & | ) | [virtual] |
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.
This must be implemented by the derived class if the class has data.
Reimplemented from sc::SavableState.