Lines 8-14
Link Here
|
8 |
#include "unistd.h" |
8 |
#include "unistd.h" |
9 |
#include "sys/wait.h" |
9 |
#include "sys/wait.h" |
10 |
#define SAFE_INT volatile sig_atomic_t |
10 |
#define SAFE_INT volatile sig_atomic_t |
11 |
@@ -473,13 +474,25 @@ void print_backtrace(const QString& mess |
11 |
@@ -473,23 +474,35 @@ void print_backtrace(const QString& mess |
12 |
|
12 |
|
13 |
#define USE_SIGNAL_HANDLER |
13 |
#define USE_SIGNAL_HANDLER |
14 |
#ifdef CPU_IS_X86_64 |
14 |
#ifdef CPU_IS_X86_64 |
Lines 40-42
Link Here
|
40 |
#elif defined(CPU_IS_PPC) |
40 |
#elif defined(CPU_IS_PPC) |
41 |
#define PC_FROM_UCONTEXT(context) (context)->uc_mcontext.gp_regs[32] |
41 |
#define PC_FROM_UCONTEXT(context) (context)->uc_mcontext.gp_regs[32] |
42 |
#define STACK_FROM_UCONTEXT(context) (context)->uc_mcontext.gp_regs[1] |
42 |
#define STACK_FROM_UCONTEXT(context) (context)->uc_mcontext.gp_regs[1] |
|
|
43 |
#define FRAME_FROM_UCONTEXT(context) (context)->uc_mcontext.gp_regs[31] //not always used |
44 |
#define RETURNTO_FROM_UCONTEXT(context) (context)->uc_mcontext.gp_regs[34] |
45 |
#elif defined(CPU_IS_ARM) |
46 |
-#define PC_FROM_UCONTEXT(context) (context)->uc_mcontext.arm_pc |
47 |
-#define STACK_FROM_UCONTEXT(context) (context)->uc_mcontext.arm_sp |
48 |
-#define FRAME_FROM_UCONTEXT(context) (context)->uc_mcontext.arm_fp |
49 |
-#define RETURNTO_FROM_UCONTEXT(context) (context)->uc_mcontext.arm_lr |
50 |
+#define PC_FROM_UCONTEXT(context) (context)->uc_mcontext.__gregs[_REG_R15] |
51 |
+#define STACK_FROM_UCONTEXT(context) (context)->uc_mcontext.__gregs[_REG_R13] |
52 |
+#define FRAME_FROM_UCONTEXT(context) (context)->uc_mcontext.__gregs[_REG_R11] |
53 |
+#define RETURNTO_FROM_UCONTEXT(context) (context)->uc_mcontext.__gregs[_REG_R14] |
54 |
#elif defined(CPU_IS_IA64) |
55 |
#define PC_FROM_UCONTEXT(context) (context)->_u._mc.sc_ip |
56 |
#define STACK_FROM_UCONTEXT(context) (context)->_u._mc.sc_gr[12] //is that register 12? |