diff options
author | cjhopman@chromium.org <cjhopman@chromium.org> | 2015-08-05 22:48:48 +0000 |
---|---|---|
committer | cjhopman@chromium.org <cjhopman@chromium.org> | 2015-08-05 22:48:48 +0000 |
commit | 64c0d9c66d207ccc1cf2a5f0c470b595735dd1a9 (patch) | |
tree | 67456ccf94d244c18dc37e20e821ec1832bbed82 /src/client | |
parent | Fix potential null pointer dereference. (diff) | |
download | breakpad-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
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/linux/minidump_writer/linux_ptrace_dumper.cc | 6 |
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 |