| 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),
|
|
|