aboutsummaryrefslogtreecommitdiff
path: root/src/client/linux/minidump_writer/linux_dumper.cc
diff options
context:
space:
mode:
authorLei Zhang <thestig@google.com>2018-04-02 22:29:08 -0700
committerLei Zhang <thestig@chromium.org>2018-04-03 16:35:14 +0000
commitadcc90ddb8c9ebc13a4312116ad92d8628b691c3 (patch)
treedbbb720156554b0078598fcd612718b01d9eb912 /src/client/linux/minidump_writer/linux_dumper.cc
parentAdd missing header for free function (diff)
downloadbreakpad-adcc90ddb8c9ebc13a4312116ad92d8628b691c3.tar.xz
Linux: Write out si_code for SIGBUS exceptions.
Store the information in the exception record's exception_information field. Change-Id: Ie215cae2f070fdab63c3d05cc1bc4fb4b7b095fa Reviewed-on: https://chromium-review.googlesource.com/990799 Reviewed-by: Mark Mentovai <mark@chromium.org>
Diffstat (limited to 'src/client/linux/minidump_writer/linux_dumper.cc')
-rw-r--r--src/client/linux/minidump_writer/linux_dumper.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/client/linux/minidump_writer/linux_dumper.cc b/src/client/linux/minidump_writer/linux_dumper.cc
index 515af3ff..dbedecd5 100644
--- a/src/client/linux/minidump_writer/linux_dumper.cc
+++ b/src/client/linux/minidump_writer/linux_dumper.cc
@@ -283,6 +283,7 @@ LinuxDumper::LinuxDumper(pid_t pid, const char* root_prefix)
root_prefix_(root_prefix),
crash_address_(0),
crash_signal_(0),
+ crash_signal_code_(0),
crash_thread_(pid),
threads_(&allocator_, 8),
mappings_(&allocator_),
@@ -354,6 +355,12 @@ LinuxDumper::ElfFileIdentifierForMapping(const MappingInfo& mapping,
return success;
}
+void LinuxDumper::SetCrashInfoFromSigInfo(const siginfo_t& siginfo) {
+ set_crash_address(reinterpret_cast<uintptr_t>(siginfo.si_addr));
+ set_crash_signal(siginfo.si_signo);
+ set_crash_signal_code(siginfo.si_code);
+}
+
const char* LinuxDumper::GetCrashSignalString() const {
switch (static_cast<unsigned int>(crash_signal_)) {
case MD_EXCEPTION_CODE_LIN_SIGHUP: