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;
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;
180#if defined(__ANDROID__) || defined(RASPBERRYPIOS)
183 standard_access_violation (::i32 signal,
void * psiginfo,
void * pc) :
184 ::standard_exception(signal, psiginfo, pc)
189#elif defined(FREEBSD_UNIX)
190 standard_access_violation (::i32 signal,
void * psiginfo,
void * pc) :
191 standard_exception(signal, psiginfo, pc, 3, (void *) pc)
197#elif defined(LINUX) || defined(__APPLE__) || defined(SOLARIS)
199 standard_access_violation (::i32 signal,
void * psiginfo,
void * pc);
208#if defined(__ANDROID__) || defined(RASPBERRYPIOS)
215 standard_sigfpe(::i32 iSignal,
void * psiginfo,
void * pc):
216 standard_exception(iSignal, psiginfo, pc)
227#elif defined(__APPLE__)
232 standard_sigfpe (::i32 iSignal, siginfo_t * psiginfo,
void * pc) :
235#ifdef __ARM_ARCH_ISA_A64
236 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((ucontext_t *) pc)->uc_mcontext->__ss.__pc)
238 standard_exception(iSignal, psiginfo, pc, 3, (void *) ((ucontext_t *) pc)->uc_mcontext->__ss.__rip)
243#if defined(APPLE_IOS)
244 ::callstack(3, nullptr),
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