34#if defined(__ANDROID__)
43#define DEFAULT_SE_EXCEPTION_CALLSTACK_SKIP 3000
47#define DEFAULT_SE_EXCEPTION_CALLSTACK_SKIP 0
53#elif defined(__APPLE__)
56#include <sys/ucontext.h>
61#define DEFAULT_SE_EXCEPTION_CALLSTACK_SKIP 3000
65#define DEFAULT_SE_EXCEPTION_CALLSTACK_SKIP 0
91friend class ::exception_translator;
100ucontext_t m_ucontext;
109void * address()
const;
110const void * info()
const;
111const_char_pointer pszName()
const;
112const_char_pointer description()
const;
114const ::ucontext_t * ucontext()
const;
122static void * siginfodup(
void * psiginfo);
123static void siginfofree(
void * psiginfo);
127standard_exception(::i32 iSignal,
void * psiginfo,
void * pc, ::i32 iSkip = DEFAULT_SE_EXCEPTION_CALLSTACK_SKIP) :
128 ::exception(error_exception, nullptr, nullptr, iSkip),
130 m_psiginfo(siginfodup(psiginfo))
139standard_exception(::i32 iSignal,
void * psiginfo,
void * pc, ::i32 iSkip = -1,
void * caller_address =
nullptr);
151 siginfofree(m_psiginfo);
162typedef struct _sig_ucontext
165 struct ucontext *uc_link;
167 sigcontext uc_mcontext;
182 standard_access_violation (::i32 signal,
void * psiginfo,
void * pc);
188#if defined(__ANDROID__) || defined(RASPBERRYPIOS)
195 standard_sigfpe(::i32 iSignal,
void * psiginfo,
void * pc):
196 standard_exception(iSignal, psiginfo, pc)
212 standard_sigfpe (::i32 iSignal, siginfo_t * psiginfo,
void * pc) :
215#if defined(__aarch64__)
216 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((sig_ucontext_t *) pc)->uc_mcontext.pc)
218 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((sig_ucontext_t *) pc)->uc_mcontext.rip)
223 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((sig_ucontext_t *) pc)->uc_mcontext.arm_ip)
226 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((sig_ucontext_t *) pc)->uc_mcontext.rip)
Definition aaa_standard.h:168
Definition aaa_standard.h:77
virtual ~standard_exception()
def(WINDOWS)
Definition standard_exception.h:146
Definition standard_exception.h:192