aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcjhopman@chromium.org <cjhopman@chromium.org>2015-08-05 22:48:48 +0000
committercjhopman@chromium.org <cjhopman@chromium.org>2015-08-05 22:48:48 +0000
commit64c0d9c66d207ccc1cf2a5f0c470b595735dd1a9 (patch)
tree67456ccf94d244c18dc37e20e821ec1832bbed82
parentFix potential null pointer dereference. (diff)
downloadbreakpad-64c0d9c66d207ccc1cf2a5f0c470b595735dd1a9.tar.xz
Fix breakpad for arm on arm64
On arm64 devices, GETFPREGS fails with errno==EIO. Ignore those failures on Android arm builds. BUG=508324 R=thestig@chromium.org Review URL: https://codereview.chromium.org/1268023003 . git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1479 4c0a9323-5329-0410-9bdc-e9ce6186880e
-rw-r--r--src/client/linux/minidump_writer/linux_ptrace_dumper.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/client/linux/minidump_writer/linux_ptrace_dumper.cc b/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
index 5ea0050d..c35e0e95 100644
--- a/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+++ b/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
@@ -206,12 +206,18 @@ bool LinuxPtraceDumper::GetThreadInfoByIndex(size_t index, ThreadInfo* info) {
return false;
}
+#if !(defined(__ANDROID__) && defined(__ARM_EABI__))
+ // When running an arm build on an arm64 device, attempting to get the
+ // floating point registers fails. On Android, the floating point registers
+ // aren't written to the cpu context anyway, so just don't get them here.
+ // See http://crbug.com/508324
void* fp_addr;
info->GetFloatingPointRegisters(&fp_addr, NULL);
if (sys_ptrace(PTRACE_GETFPREGS, tid, NULL, fp_addr) == -1) {
return false;
}
#endif
+#endif // PTRACE_GETREGSET
#if defined(__i386)
#if !defined(bit_FXSAVE) // e.g. Clang