00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include "sig_dh.h"
00031 #include "Parser_dh.h"
00032
00033
00034 #undef __FUNC__
00035 #define __FUNC__ "sigHandler_dh"
00036 void
00037 sigHandler_dh (int sig)
00038 {
00039 fprintf (stderr, "\n[%i] Euclid Signal Handler got: %s\n", myid_dh,
00040 SIGNAME[sig]);
00041 fprintf (stderr,
00042 "[%i] ========================================================\n",
00043 myid_dh);
00044 fprintf (stderr,
00045 "[%i] function calling sequence that led to the exception:\n",
00046 myid_dh);
00047 fprintf (stderr,
00048 "[%i] ========================================================\n",
00049 myid_dh);
00050 printFunctionStack (stderr);
00051 fprintf (stderr, "\n\n");
00052
00053 if (logFile != NULL)
00054 {
00055 fprintf (logFile, "\n[%i] Euclid Signal Handler got: %s\n", myid_dh,
00056 SIGNAME[sig]);
00057 fprintf (logFile,
00058 "[%i] ========================================================\n",
00059 myid_dh);
00060 fprintf (logFile,
00061 "[%i] function calling sequence that led to the exception:\n",
00062 myid_dh);
00063 fprintf (logFile,
00064 "[%i] ========================================================\n",
00065 myid_dh);
00066 printFunctionStack (logFile);
00067 fprintf (logFile, "\n\n");
00068 }
00069
00070 EUCLID_EXIT;
00071 }
00072
00073 #undef __FUNC__
00074 #define __FUNC__ "sigRegister_dh"
00075 void
00076 sigRegister_dh ()
00077 {
00078 if (Parser_dhHasSwitch (parser_dh, "-sig_dh"))
00079 {
00080 int i;
00081 for (i = 0; i < euclid_signals_len; ++i)
00082 {
00083 signal (euclid_signals[i], sigHandler_dh);
00084 }
00085 }
00086 }