Minsky
TCLcmd::trap Namespace Reference

Classes

struct  init_t
 

Functions

void sighand (int s)
 
 NEWCMD (trap, 2)
 
void aborthand (int)
 
 NEWCMD (trapabort,-1)
 

Variables

eco_string sigcmd [32]
 
hash_map< eco_string, int > signum
 
struct TCLcmd::trap::init_t init
 

Function Documentation

◆ aborthand()

void TCLcmd::trap::aborthand ( int  )

Definition at line 262 of file tclmain.cc.

Referenced by NEWCMD().

262 {throw error("Fatal Error: Execution recovered");}
Here is the caller graph for this function:

◆ NEWCMD() [1/2]

TCLcmd::trap::NEWCMD ( trap  ,
 
)

Definition at line 254 of file tclmain.cc.

References sigcmd, sighand(), and signum.

255  {
256  const int signo = (isdigit(argv[1][0]))? atoi(argv[1]):
257  signum[const_cast<char*>(argv[1])];
258  sigcmd[signo]=argv[2];
259  signal(signo,sighand);
260  }
hash_map< eco_string, int > signum
Definition: tclmain.cc:211
void sighand(int s)
Definition: tclmain.cc:210
eco_string sigcmd[32]
Definition: tclmain.cc:209
Here is the call graph for this function:

◆ NEWCMD() [2/2]

TCLcmd::trap::NEWCMD ( trapabort  ,
1 
)

Definition at line 264 of file tclmain.cc.

References aborthand(), SIG_DFL, SIGABRT, SIGBUS, SIGILL, and SIGSEGV.

265  {
266  void (*hand)(int);
267  if (argc>1 && strcmp(argv[1],"off")==0) hand=SIG_DFL;
268  else hand=aborthand;
269  signal(SIGABRT,hand);
270  signal(SIGSEGV,hand);
271  signal(SIGBUS,hand);
272  signal(SIGILL,hand);
273  }
#define SIG_DFL
Definition: tclmain.cc:36
#define SIGSEGV
Definition: tclmain.cc:50
#define SIGABRT
Definition: tclmain.cc:42
#define SIGBUS
Definition: tclmain.cc:46
#define SIGILL
Definition: tclmain.cc:39
void aborthand(int)
Definition: tclmain.cc:262
Here is the call graph for this function:

◆ sighand()

void TCLcmd::trap::sighand ( int  s)

Definition at line 210 of file tclmain.cc.

References sigcmd.

Referenced by NEWCMD().

210 {Tcl_Eval(interp(),sigcmd[s].c_str());}
eco_string sigcmd[32]
Definition: tclmain.cc:209
Here is the caller graph for this function:

Variable Documentation

◆ init

◆ sigcmd

eco_string TCLcmd::trap::sigcmd[32]

Definition at line 209 of file tclmain.cc.

Referenced by NEWCMD(), and sighand().

◆ signum

hash_map<eco_string,int> TCLcmd::trap::signum

Definition at line 211 of file tclmain.cc.

Referenced by TCLcmd::trap::init_t::init_t(), and NEWCMD().