sc::Debugger(3)
π
sc::Debugger(3) β the MPQC manual page, bestie π¦
πΈ NAME πΈ
okay so sc::Debugger is literally the class that describes what should be done when a catastrophic error causes unexpected program termination. periodt. π
β¨ SYNOPSIS β¨
#include <bug.h>
Inherits sc::SavableState.
π Public Member Functions π
Debugger (const char *exec=0)β constructor vibes, withexecdefaulting to0.Debugger (const Ref< KeyVal > &)β the KeyVal constructor; it understands the keywords listed down below, bestie.Debugger (StateIn &)β constructor that takes aStateIn.virtual void debug (const char *reason=0)β thedebugmember tries to start a debugger running on the current process.virtual void traceback (const char *reason=0)β thetracebackmember attempts a stack traceback for the current process.virtual void set_debug_on_signal (int)β turn debugging on or off on a signal. The default is on.virtual void set_traceback_on_signal (int)β turn traceback on or off on a signal. The default is on.virtual void set_exit_on_signal (int)β turn exit after a signal on or off. 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 get activated whensigis caught.virtual void handle_defaults ()β this callshandle(int)with all of the major signals.virtual void set_prefix (const char *p)β this sets a prefix which precedes all messages printed by Debugger.virtual void set_prefix (int p)β set the prefix to the decimal representation ofpfollowed by a': '.virtual void set_cmd (const char *)β sets the command to be executed whendebugis called.virtual void default_cmd ()β callsset_cmdwith a hopefully suitable default.virtual void set_exec (const char *)β set the name of the executable for the current process.virtual void got_signal (int sig)β called when signalsigis received. This is mainly for internal use.void save_data_state (StateOut &)β save the base classes (withsave_data_state) and the members in the same order that theStateInCTOR 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_
π Detailed Description π
okay so the Debugger class describes what should be done when a catastrophic error causes unexpected program termination. no cap. π
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 β lowkey important. π
π Constructor & Destructor Documentation π
π sc::Debugger::Debugger (const Ref< KeyVal > &) π
The KeyVal constructor understands the following keywords, bestie:
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 is0.handle_defaultsβ handle a standard set of signals such asSIGBUS,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.
π₯ Member Function Documentation π₯
π₯ 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.
π¦ virtual void sc::Debugger::set_cmd (const char *) [virtual] π¦
Sets the command to be executed 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] π
Set the name of the executable for the current process. It is up to the programmer to set this, even if the Debugger is initialized with the KeyVal constructor.
π 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::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.
π Author π
Generated automatically by Doxygen for MPQC from the source code.
π cute sign-off: this iconic page is from MPQC, Version 2.3.1, dated Sun Oct 4 2020, and itβs the sc::Debugger(3) manual page. slay. πβ¨
π¦ where this page comes from
- ubuntu jammy: libsc-doc 2.3.1-21
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms