MPQC 2.3.1
bug.h
1//
2// bug.h
3//
4// Copyright (C) 1996 Limit Point Systems, Inc.
5//
6// Author: Curtis Janssen <cljanss@limitpt.com>
7// Maintainer: LPS
8//
9// This file is part of the SC Toolkit.
10//
11// The SC Toolkit is free software; you can redistribute it and/or modify
12// it under the terms of the GNU Library General Public License as published by
13// the Free Software Foundation; either version 2, or (at your option)
14// any later version.
15//
16// The SC Toolkit is distributed in the hope that it will be useful,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19// GNU Library General Public License for more details.
20//
21// You should have received a copy of the GNU Library General Public License
22// along with the SC Toolkit; see the file COPYING.LIB. If not, write to
23// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24//
25// The U.S. Government is granted a limited license as per AL 91-7.
26//
27
28#ifdef __GNUG__
29#pragma interface
30#endif
31
32#ifndef _util_misc_bug_h
33#define _util_misc_bug_h
34
35#include <util/class/class.h>
36#include <util/state/state.h>
37#include <util/ref/ref.h>
38
39namespace sc {
40
46class Debugger: public SavableState {
47 protected:
48 char *prefix_;
49 char *exec_;
50 char *cmd_;
51 volatile int debugger_ready_;
52
53 int debug_;
54 int traceback_;
55 int exit_on_signal_;
56 int sleep_;
57 int wait_for_debugger_;
58 int handle_sigint_;
59 int *mysigs_;
60
61 void init();
62
63 static Debugger *default_debugger_;
64 public:
65 Debugger(const char *exec = 0);
66
97
99 ~Debugger();
100
103 virtual void debug(const char *reason = 0);
109 virtual void traceback(const char *reason = 0);
111 virtual void set_debug_on_signal(int);
113 virtual void set_traceback_on_signal(int);
115 virtual void set_exit_on_signal(int);
119 virtual void set_wait_for_debugger(int);
120
122 virtual void handle(int sig);
124 virtual void handle_defaults();
125
127 virtual void set_prefix(const char *p);
129 virtual void set_prefix(int p);
130
136 virtual void set_cmd(const char *);
138 virtual void default_cmd();
142 virtual void set_exec(const char *);
143
145 virtual void got_signal(int sig);
146
151
153};
154
155}
156
157#endif
158
159// Local Variables:
160// mode: c++
161// c-file-style: "CLJ"
162// End:
The Debugger class describes what should be done when a catastrophic error causes unexpected program ...
Definition bug.h:46
Debugger(const Ref< KeyVal > &)
The KeyVal constructor understands the following keywords:
virtual void set_prefix(const char *p)
This sets a prefix which preceeds all messages printing by Debugger.
virtual void set_cmd(const char *)
Sets the command to be exectuted when debug is called.
virtual void handle(int sig)
The Debugger will be actived when sig is caught.
virtual void set_exec(const char *)
Set the name of the exectuble for the current process.
virtual void default_cmd()
Calls set_cmd with a hopefully suitable default.
virtual void set_wait_for_debugger(int)
Turn on or off running an infinite loop after the debugger is started.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
static Debugger * default_debugger()
Return the global default debugger.
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.
static void set_default_debugger(const Ref< Debugger > &)
Set the global default debugger. The initial value is null.
virtual void handle_defaults()
This calls handle(int) with all of the major signals.
virtual void traceback(const char *reason=0)
The traceback member attempts a stack traceback for the current process.
virtual void set_exit_on_signal(int)
Turn on or off exit after a signel. The default is on.
virtual void got_signal(int sig)
Called with signal sig is received. This is mainly for internal use.
virtual void debug(const char *reason=0)
The debug member attempts to start a debugger running on the current process.
virtual void set_prefix(int p)
Set the prefix to the decimal represention of p followed by a ": ".
A template class that maintains references counts.
Definition ref.h:332
Base class for objects that can save/restore state.
Definition state.h:46
Restores objects that derive from SavableState.
Definition statein.h:70
Serializes objects that derive from SavableState.
Definition stateout.h:61

Generated at Wed Mar 13 2024 18:30:16 for MPQC 2.3.1 using the documentation package Doxygen 1.9.8.