25#if defined(__ANDROID__)
33#define DEFAULT_SE_EXCEPTION_CALLSTACK_SKIP 3000
37#define DEFAULT_SE_EXCEPTION_CALLSTACK_SKIP 0
43#elif defined(__APPLE__)
46#include <sys/ucontext.h>
51#define DEFAULT_SE_EXCEPTION_CALLSTACK_SKIP 3000
55#define DEFAULT_SE_EXCEPTION_CALLSTACK_SKIP 0
75class CLASS_DECL_ACME standard_exception :
81 friend class ::exception_translator;
90 ucontext_t m_ucontext;
99 void * address()
const;
100 const void * info()
const;
101 const_char_pointer pszName()
const;
102 const_char_pointer description()
const;
104 const ::ucontext_t * ucontext()
const;
112 static void * siginfodup(
void * psiginfo);
113 static void siginfofree(
void * psiginfo);
117 standard_exception(::i32 iSignal,
void * psiginfo,
void * pc, ::i32 iSkip = DEFAULT_SE_EXCEPTION_CALLSTACK_SKIP) :
118 ::exception(error_exception,
nullptr,
nullptr, iSkip),
120 m_psiginfo(siginfodup(psiginfo))
129 standard_exception(::i32 iSignal,
void * psiginfo,
void * pc, ::i32 iSkip = -1,
void * caller_address =
nullptr);
141 siginfofree(m_psiginfo);
152typedef struct _sig_ucontext
155 struct ucontext *uc_link;
157 sigcontext uc_mcontext;
167 class standard_access_violation :
public standard_exception
170#if defined(__ANDROID__) || defined(RASPBERRYPIOS)
173 standard_access_violation (::i32 signal,
void * psiginfo,
void * pc) :
174 ::standard_exception(signal, psiginfo, pc)
179#elif defined(FREEBSD_UNIX)
180 standard_access_violation (::i32 signal,
void * psiginfo,
void * pc) :
181 standard_exception(signal, psiginfo, pc, 3, (
void *) pc)
187#elif defined(LINUX) || defined(__APPLE__) || defined(SOLARIS)
189 standard_access_violation (::i32 signal,
void * psiginfo,
void * pc);
198#if defined(__ANDROID__) || defined(RASPBERRYPIOS)
217#elif defined(FREEBSD)
222 standard_sigfpe (::i32 iSignal, siginfo_t * psiginfo,
void * pc) :
224 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((ucontext_t *) pc)->uc_mcontext.mc_rip)
237#elif defined(LINUX) || defined(__APPLE__)
242 standard_sigfpe (::i32 iSignal, siginfo_t * psiginfo,
void * pc) :
245 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((sig_ucontext_t *) pc)->uc_mcontext.rip)
249 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((sig_ucontext_t *) pc)->uc_mcontext.arm_ip)
252 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((sig_ucontext_t *) pc)->uc_mcontext.rip)
260#ifdef __ARM_ARCH_ISA_A64
261 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((ucontext_t *) pc)->uc_mcontext->__ss.__pc)
263 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((ucontext_t *) pc)->uc_mcontext->__ss.__rip)
268#if defined(APPLE_IOS)
269 ::callstack(3, nullptr),
Definition aaa_standard.h:77
virtual ~standard_exception()
def(WINDOWS)
Definition aaa_standard.h:136
Definition standard_exception.h:192