25 lines
683 B
Diff
25 lines
683 B
Diff
--- src/client/CrashHandler.cpp
|
|
+++ src/client/CrashHandler.cpp
|
|
@@ -23,6 +23,9 @@
|
|
|
|
#include "../breakpad/BreakPad.h"
|
|
|
|
+#if defined(__linux__) && defined(__powerpc__)
|
|
+#include <asm/ptrace.h>
|
|
+#endif
|
|
|
|
#ifdef NBREAKPAD
|
|
|
|
@@ -320,7 +322,11 @@ public:
|
|
pnt = (void*) uc->uc_mcontext.sc_iaoq[0] & ~0x3UL ;
|
|
# elif (defined (__ppc__)) || (defined (__powerpc__))
|
|
ucontext_t* uc = (ucontext_t*) secret;
|
|
+# if !defined(__GLIBC__) && !defined(__powerpc64__)
|
|
+ pnt = (void*) ((struct pt_regs *)uc->uc_regs)->nip ;
|
|
+# else
|
|
pnt = (void*) uc->uc_mcontext.regs->nip ;
|
|
+# endif
|
|
# elif defined(__sparc__)
|
|
struct sigcontext* sc = (struct sigcontext*) secret;
|
|
# if __WORDSIZE == 64
|