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
88#include <machine/ucontext.h>
89#include <sys/ucontext.h>
90#include <machine/ucontext.h>
102friend class ::exception_translator;
111ucontext_t m_ucontext;
120void * address()
const;
121const void * info()
const;
122const_char_pointer pszName()
const;
123const_char_pointer description()
const;
125const ::ucontext_t * ucontext()
const;
133static void * siginfodup(
void * psiginfo);
134static void siginfofree(
void * psiginfo);
138standard_exception(::i32 iSignal,
void * psiginfo,
void * pc, ::i32 iSkip = DEFAULT_SE_EXCEPTION_CALLSTACK_SKIP) :
139 ::exception(error_exception, nullptr, nullptr, iSkip),
141 m_psiginfo(siginfodup(psiginfo))
150standard_exception(::i32 iSignal,
void * psiginfo,
void * pc, ::i32 iSkip = -1,
void * caller_address =
nullptr);
162 siginfofree(m_psiginfo);
173typedef struct _sig_ucontext
176 struct ucontext *uc_link;
178 sigcontext uc_mcontext;
193 standard_access_violation (::i32 signal,
void * psiginfo,
void * pc);
199#if defined(__ANDROID__) || defined(RASPBERRYPIOS)
206 standard_sigfpe(::i32 iSignal,
void * psiginfo,
void * pc):
207 standard_exception(iSignal, psiginfo, pc)
218#elif defined(FREEBSD)
221#if defined(__FreeBSD__) && defined(__aarch64__)
229 standard_sigfpe (::i32 iSignal, siginfo_t * psiginfo,
void * pc) :
231 #if defined(__x86_64__)
232 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((ucontext_t *) pc)->uc_mcontext.mc_rip)
234 #elif defined(__aarch64__)
235 standard_exception(iSignal, psiginfo, pc, 3, nullptr)
237 #error unknonw architecture
251#elif defined(LINUX) || defined(__APPLE__)
256 standard_sigfpe (::i32 iSignal, siginfo_t * psiginfo,
void * pc) :
259 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((sig_ucontext_t *) pc)->uc_mcontext.rip)
263 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((sig_ucontext_t *) pc)->uc_mcontext.arm_ip)
266 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((sig_ucontext_t *) pc)->uc_mcontext.rip)
274#ifdef __ARM_ARCH_ISA_A64
275 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((ucontext_t *) pc)->uc_mcontext->__ss.__pc)
277 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((ucontext_t *) pc)->uc_mcontext->__ss.__rip)
282#if defined(APPLE_IOS)
283 ::callstack(3, nullptr),
Definition aaa_standard.h:168
Definition aaa_standard.h:77
virtual ~standard_exception()
def(WINDOWS)
Definition standard_exception.h:157
Definition standard_exception.h:192