OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
traceback_handler.c File Reference
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <signal.h>

Go to the source code of this file.

Macros

#define _FCALL
#define trace_cf   trace_cf_

Functions

void setignorecore (int *on)
void ignoreCore (int s)
void trace_cf (int *s, int *iw)
void ARRET (int *n)
void arret_ (int *n)
void arret_c (int n)
void user_abrt (int sig)
void _FCALL SETIGNORECORE (int *on)
void setignorecore__ (int *on)
void setignorecore_ (int *on)

Macro Definition Documentation

◆ _FCALL

#define _FCALL

Definition at line 31 of file traceback_handler.c.

◆ trace_cf

#define trace_cf   trace_cf_

Definition at line 36 of file traceback_handler.c.

Function Documentation

◆ ARRET()

void ARRET ( int * n)

◆ arret_()

void arret_ ( int * n)

◆ arret_c()

void arret_c ( int n)

Calls the Fortran Arret routine for termination

n is the error termination

Definition at line 132 of file write_routtines.c.

137{
138/*Appel a une routine Fortran */
139#ifdef _WIN64
140 ARRET(&n);
141#else
142 arret_(&n);
143#endif
144}
n
void ARRET(int *n)
void arret_(int *n)

◆ ignoreCore()

void ignoreCore ( int s)

Definition at line 61 of file traceback_handler.c.

62{
63 int iw = 1, is;
64 if (s == SIGBUS ) is=1;
65 else if(s == SIGFPE ) is=2;
66 else if(s == SIGSEGV) is=3;
67
68 trace_cf(&is,&iw);
69}
#define trace_cf

◆ SETIGNORECORE()

void _FCALL SETIGNORECORE ( int * on)

Definition at line 82 of file traceback_handler.c.

83{setignorecore (on);}
void setignorecore(int *on)

◆ setignorecore()

void setignorecore ( int * on)

Definition at line 89 of file traceback_handler.c.

90{
91if (*on ) {
92#ifdef SIGBUS
93 signal (SIGBUS, ignoreCore); /* 7 bus error*/
94#endif
95#ifdef SIGFPE
96 signal (SIGFPE, ignoreCore); /* 8 i/0 */
97#endif
98#ifdef SIGSEGV
99 signal (SIGSEGV, ignoreCore); /* 11 segmentation violation*/
100#endif
101#ifdef SIGILL
102 signal (SIGILL, ignoreCore); /* 4 illegal instruction*/
103#endif
104}
105else { /* acknowledging core */
106#ifdef SIGBUS
107 signal (SIGBUS, SIG_DFL); /* 7 bus error*/
108#endif
109#ifdef SIGFPE
110 signal (SIGFPE, SIG_DFL); /* 8 i/0 */
111#endif
112#ifdef SIGSEGV
113 signal (SIGSEGV, SIG_DFL); /* 11 segmentation violation*/
114#endif
115#ifdef SIGILL
116 signal (SIGILL, SIG_DFL); /* 4 illegal instruction*/
117#endif
118}
119
120#ifdef SIGINT
121signal (SIGINT,user_abrt);
122#endif
123
124#ifdef SIGABRT
125signal (SIGABRT,user_abrt);
126#endif
127
128#ifdef SIGBREAK
129signal (SIGBREAK,user_abrt);
130#endif
131
132#ifdef SIGTERM
133signal (SIGTERM, user_abrt); /* 15 Termination signal*/
134#endif
135}
void ignoreCore(int s)
void user_abrt(int sig)

◆ setignorecore_()

void setignorecore_ ( int * on)

Definition at line 86 of file traceback_handler.c.

87{setignorecore (on);}

◆ setignorecore__()

void setignorecore__ ( int * on)

Definition at line 84 of file traceback_handler.c.

85{setignorecore (on);}

◆ trace_cf()

void trace_cf ( int * s,
int * iw )

◆ user_abrt()

void user_abrt ( int sig)

Definition at line 72 of file traceback_handler.c.

73{
74 int val=3;
75 printf("\n\nUser or system abort detected (CTRL-C) !\n\n");
76 arret_c(val);
77}
void arret_c(int n)