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 ARRET (int *n)
void arret_ (int *n)
void arret_c (int n)
void setignorecore (int *on)
void ignoreCore (int s)
void trace_cf (int *s, int *iw)
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 29 of file traceback_handler.c.

◆ trace_cf

#define trace_cf   trace_cf_

Definition at line 39 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 60 of file traceback_handler.c.

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

◆ SETIGNORECORE()

void _FCALL SETIGNORECORE ( int * on)

Definition at line 83 of file traceback_handler.c.

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

◆ setignorecore()

void setignorecore ( int * on)

Definition at line 90 of file traceback_handler.c.

91{
92 if (*on) { /*ignoring core */
93#ifdef SIGBUS
94 signal (SIGBUS, ignoreCore); /* 7 bus error*/
95#endif
96#ifdef SIGFPE
97 signal (SIGFPE, ignoreCore); /* 8 i/0 */
98#endif
99#ifdef SIGSEGV
100 signal (SIGSEGV, ignoreCore); /* 11 segmentation violation*/
101#endif
102 }
103 else { /* acknowledging core */
104#ifdef SIGBUS
105 signal (SIGBUS, SIG_DFL); /* 7 bus error*/
106#endif
107#ifdef SIGFPE
108 signal (SIGFPE, SIG_DFL); /* 8 i/0 */
109#endif
110#ifdef SIGSEGV
111 signal (SIGSEGV, SIG_DFL); /* 11 segmentation violation*/
112#endif
113 }
114
115#ifdef SIGINT
116signal (SIGINT,user_abrt); /* 2 Interrupt from keyboard*/
117#endif
118
119#ifdef SIGABRT
120signal (SIGABRT,user_abrt); /* 6 Abnormal termination*/
121#endif
122
123#ifdef SIGBREAK
124signal (SIGBREAK,user_abrt); /* Ctrl-Break signal*/
125#endif
126
127#ifdef SIGTERM
128signal (SIGTERM,user_abrt); /* 15 Termination signal*/
129#endif
130}
void ignoreCore(int s)
void user_abrt(int sig)

◆ setignorecore_()

void setignorecore_ ( int * on)

Definition at line 87 of file traceback_handler.c.

88{setignorecore (on);}

◆ setignorecore__()

void setignorecore__ ( int * on)

Definition at line 85 of file traceback_handler.c.

86{setignorecore (on);}

◆ trace_cf()

void trace_cf ( int * s,
int * iw )

◆ user_abrt()

void user_abrt ( int sig)

Definition at line 73 of file traceback_handler.c.

74{
75 int val=6; /* arret_c(6) initiates STOP with 3 as error code (system error) */
76 printf("\n\nUser or system abort detected (CTRL-C) !\n\n");
77 arret_c(val);
78}
void arret_c(int n)