Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Unified Diff: src/client/linux/handler/exception_handler.cc

Issue 543125: Port linux_syscall_support and linux_dumper to support Linux ARM. Unit tests... (Closed) Base URL: http://google-breakpad.googlecode.com/svn/trunk/
Patch Set: '' Created 10 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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),

Powered by Google App Engine
This is Rietveld 408576698