Bonjour,
j'utilse une gestion des signal classique comme ci-dessous pour intercepter des signaux d'erreurs dans mon code. J'essaye en vain un moyen dans ma fonction handle_siganl un moyen de connaitre la fonction d'orrigine du signal, ici par example "func_test".
Je ne pense pas qu'il est y ait un moyen, mais au cas ou quelqu'un aurait déjà fait ca, je suis preneur.
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 void handle_signal(int param) { std::string err,err2; err="Critical system error : "; err2="Unknow error\n"; if (param==2) err2="Interactive attention\n"; if (param==4) err2="Illegal instruction\n"; if (param==8) err2="Floating point error\n"; if (param==11) err2="Segmentation violation\n"; if (param==22) err2="Abnormal termination (abort)\n"; printf("%s\n",err.c_str()); } //------------------------------------------------------------------------- void func_test() { raise(SIGSEGV); } int main(int argc, char *argv[]) { signal (SIGILL, handle_signal); signal (SIGFPE, handle_signal); signal (SIGSEGV,handle_signal); .. . // suite du code func_test(); ... }
Partager