Index: src/client/linux/handler/exception_handler.cc |
=================================================================== |
--- src/client/linux/handler/exception_handler.cc (revision 400) |
+++ src/client/linux/handler/exception_handler.cc (working copy) |
@@ -87,7 +87,7 @@ |
// A wrapper for the tgkill syscall: send a signal to a specific thread. |
static int tgkill(pid_t tgid, pid_t tid, int sig) { |
- syscall(__NR_tgkill, tgid, tid, sig); |
+ return syscall(__NR_tgkill, tgid, tid, sig); |
} |
namespace google_breakpad { |
@@ -171,6 +171,7 @@ |
return false; |
old_handlers_.push_back(std::make_pair(kExceptionSignals[i], old)); |
} |
+ return true; |
} |
// Runs before crashing: normal context. |
@@ -264,8 +265,11 @@ |
CrashContext context; |
memcpy(&context.siginfo, info, sizeof(siginfo_t)); |
memcpy(&context.context, uc, sizeof(struct ucontext)); |
+#if !defined(__ARM_ARCH_7A__) |
+ // FP state is not part of user ABI on ARM Linux. |
memcpy(&context.float_state, ((struct ucontext *)uc)->uc_mcontext.fpregs, |
sizeof(context.float_state)); |
+#endif |
context.tid = sys_gettid(); |
if (crash_handler_ && crash_handler_(&context, sizeof(context), |