aboutsummaryrefslogtreecommitdiff
path: root/src/client/linux/minidump_writer/linux_core_dumper.cc
diff options
context:
space:
mode:
authorMike Frysinger <vapier@chromium.org>2019-03-02 02:37:25 -0500
committerMike Frysinger <vapier@chromium.org>2019-03-12 05:02:27 +0000
commit3ee9a0b27438910a8fcbc263fc0df8b901a78d71 (patch)
tree9c46c2ac14481fc7e932d58eb7c67aa11343530b /src/client/linux/minidump_writer/linux_core_dumper.cc
parentlinux_core_dumper: add a fallback definition for NT_SIGINFO (diff)
downloadbreakpad-3ee9a0b27438910a8fcbc263fc0df8b901a78d71.tar.xz
linux_core_dumper: support setting exception_information
Many signals in Linux support additional metadata on a per-signal basis. We can extract that from NT_SIGINFO and pass it through in the exception_information fields. The current core dumper logic doesn't set exception_information at all, so this is an improvement. Bug: google-breakpad:791 Change-Id: I38b78d6494e9bc682441750d98ac9be5b0656f5a Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/1497662 Reviewed-by: Mark Mentovai <mark@chromium.org>
Diffstat (limited to 'src/client/linux/minidump_writer/linux_core_dumper.cc')
-rw-r--r--src/client/linux/minidump_writer/linux_core_dumper.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/client/linux/minidump_writer/linux_core_dumper.cc b/src/client/linux/minidump_writer/linux_core_dumper.cc
index 3bb2ee7e..b24573b1 100644
--- a/src/client/linux/minidump_writer/linux_core_dumper.cc
+++ b/src/client/linux/minidump_writer/linux_core_dumper.cc
@@ -241,6 +241,16 @@ bool LinuxCoreDumper::EnumerateThreads() {
crash_address_ = reinterpret_cast<uintptr_t>(info->si_addr);
break;
}
+
+ // Set crash_exception_info for common signals.
+ switch (info->si_signo) {
+ case MD_EXCEPTION_CODE_LIN_SIGKILL:
+ set_crash_exception_info({info->si_pid, info->si_uid});
+ break;
+ case MD_EXCEPTION_CODE_LIN_SIGSYS:
+ set_crash_exception_info({info->si_syscall, info->si_arch});
+ break;
+ }
break;
}
#if defined(__i386) || defined(__x86_64)