mirror of
https://github.com/yuzu-emu/breakpad
synced 2024-11-22 11:13:37 +00:00
Fix minidump generation on arm softfp targets.
Test: arm softfp build, crashed program intentionally with kill -4 and observed successful minidump generation. Bug: b/283473162 Change-Id: Id71f92653ced04575ffbb87e309d4139ca34d843 Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/4545508 Reviewed-by: Joshua Peraza <jperaza@chromium.org>
This commit is contained in:
parent
9f96d5c7b7
commit
8267ac6510
1 changed files with 8 additions and 0 deletions
|
@ -179,6 +179,13 @@ bool LinuxPtraceDumper::ReadRegisters(ThreadInfo* info, pid_t tid) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// When running on arm processors the binary may be built with softfp or
|
||||||
|
// hardfp. If built with softfp we have no hardware registers to read from,
|
||||||
|
// so the following read will always fail. gcc defines __SOFTFP__ macro,
|
||||||
|
// clang13 does not do so. see: https://reviews.llvm.org/D135680.
|
||||||
|
// If you are using clang and the macro is NOT defined, please include the
|
||||||
|
// macro define for applicable targets.
|
||||||
|
#if !defined(__SOFTFP__)
|
||||||
#if !(defined(__ANDROID__) && defined(__ARM_EABI__))
|
#if !(defined(__ANDROID__) && defined(__ARM_EABI__))
|
||||||
// When running an arm build on an arm64 device, attempting to get the
|
// When running an arm build on an arm64 device, attempting to get the
|
||||||
// floating point registers fails. On Android, the floating point registers
|
// floating point registers fails. On Android, the floating point registers
|
||||||
|
@ -190,6 +197,7 @@ bool LinuxPtraceDumper::ReadRegisters(ThreadInfo* info, pid_t tid) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif // !(defined(__ANDROID__) && defined(__ARM_EABI__))
|
#endif // !(defined(__ANDROID__) && defined(__ARM_EABI__))
|
||||||
|
#endif // !defined(__SOFTFP__)
|
||||||
return true;
|
return true;
|
||||||
#else // PTRACE_GETREGS
|
#else // PTRACE_GETREGS
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in a new issue