mirror of
https://github.com/yuzu-emu/breakpad.git
synced 2024-11-24 05:45:43 +01:00
linux_core_dumper: handle missing SIGSYS support
If the kernel/C library headers are old, they might not have the fields needed for SIGSYS decoding. Add ifdef checks for that and skip the logic entirely. Easier than adding arch-specific siginfo structs to the codebase. Bug: google-breakpad:791 Change-Id: Ia473e3ffa61fce4c42cf4c1e73a9df044599bc5c Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/1524447 Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
parent
3ee9a0b274
commit
8547289da5
@ -248,7 +248,9 @@ bool LinuxCoreDumper::EnumerateThreads() {
|
||||
set_crash_exception_info({info->si_pid, info->si_uid});
|
||||
break;
|
||||
case MD_EXCEPTION_CODE_LIN_SIGSYS:
|
||||
#ifdef si_syscall
|
||||
set_crash_exception_info({info->si_syscall, info->si_arch});
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -135,6 +135,12 @@ TEST(LinuxCoreDumperTest, VerifyExceptionDetails) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifndef si_syscall
|
||||
fprintf(stderr, "LinuxCoreDumperTest.VerifyDumpWithMultipleThreads test is "
|
||||
"skipped due to old kernel/C library headers\n");
|
||||
return;
|
||||
#endif
|
||||
|
||||
const unsigned kNumOfThreads = 2;
|
||||
const unsigned kCrashThread = 1;
|
||||
const int kCrashSignal = SIGSYS;
|
||||
|
Loading…
Reference in New Issue
Block a user