MPQC
2.3.1
|
The Debugger class describes what should be done when a catastrophic error causes unexpected program termination. More...
#include <bug.h>
Public Member Functions | |
Debugger (const char *exec=0) | |
Debugger (const Ref< KeyVal > &) | |
The KeyVal constructor understands the following keywords: More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Public Member Functions inherited from sc::SavableState | |
SavableState & | operator= (const SavableState &) |
void | save_state (StateOut &) |
Save the state of the object as specified by the StateOut object. More... | |
void | save_object_state (StateOut &) |
This can be used for saving state when the exact type of the object is known for both the save and the restore. More... | |
virtual void | save_vbase_state (StateOut &) |
Save the virtual bases for the object. More... | |
Public Member Functions inherited from sc::DescribedClass | |
DescribedClass (const DescribedClass &) | |
DescribedClass & | operator= (const DescribedClass &) |
ClassDesc * | class_desc () const throw () |
This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More... | |
const char * | class_name () const |
Return the name of the object's exact type. | |
int | class_version () const |
Return the version of the class. | |
virtual void | print (std::ostream &=ExEnv::out0()) const |
Print the object. | |
Public Member Functions inherited from sc::RefCount | |
int | lock_ptr () const |
Lock this object. | |
int | unlock_ptr () const |
Unlock this object. | |
void | use_locks (bool inVal) |
start and stop using locks on this object | |
refcount_t | nreference () const |
Return the reference count. | |
refcount_t | reference () |
Increment the reference count and return the new count. | |
refcount_t | dereference () |
Decrement the reference count and return the new count. | |
int | managed () const |
void | unmanage () |
Turn off the reference counting mechanism for this object. More... | |
int | managed () const |
Return 1 if the object is managed. Otherwise return 0. | |
Public Member Functions inherited from sc::Identity | |
Identifier | identifier () |
Return the Identifier for this argument. More... | |
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. | |
Static Public Member Functions inherited from sc::SavableState | |
static void | save_state (SavableState *s, StateOut &) |
static SavableState * | restore_state (StateIn &si) |
Restores objects saved with save_state. More... | |
static SavableState * | key_restore_state (StateIn &si, const char *keyword) |
Like restore_state, but keyword is used to override values while restoring. | |
static SavableState * | dir_restore_state (StateIn &si, const char *objectname, const char *keyword=0) |
Protected Member Functions | |
void | init () |
Protected Member Functions inherited from sc::SavableState | |
SavableState (const SavableState &) | |
SavableState (StateIn &) | |
Each derived class StateIn CTOR handles the restore corresponding to calling save_object_state, save_vbase_state, and save_data_state listed above. More... | |
Protected Member Functions inherited from sc::RefCount | |
RefCount (const RefCount &) | |
RefCount & | operator= (const RefCount &) |
Static Protected Attributes | |
static Debugger * | default_debugger_ |
The Debugger class describes what should be done when a catastrophic error causes unexpected program termination.
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
Try to start a debugger when an error occurs. Doesn't work on all machines. The default is true, if possible.
traceback
Try to print out a traceback extracting return addresses from the call stack. Doesn't work on most machines. The default is true, if possible.
exit
Exit on errors. The default is true.
wait_for_debugger
When starting a debugger go into an infinite loop to give the debugger a chance to attach to the process. The default is true.
sleep
When starting a debugger wait this many seconds to give the debugger a chance to attach to the process. The default is 0.
handle_defaults
Handle a standard set of signals such as SIGBUS, SIGSEGV, etc. The default is true.
prefix
Gives a string that is printed before each line that is printed by Debugger. The default is nothing.
cmd
Gives a command to be executed to start the debugger. The default varies with machine.
|
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.
|
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 |
|
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 |
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.