diff options
author | Tobias Sargeant <tobiasjs@google.com> | 2017-02-02 17:11:13 +0000 |
---|---|---|
committer | Tobias Sargeant <tobiasjs@chromium.org> | 2017-02-03 10:01:12 +0000 |
commit | 049a1532e57b2631b6f228f078759323a13674d0 (patch) | |
tree | e21c2e1b9fd141ffa53dd74c47af6d49b472829f /src/client/linux/handler/exception_handler.cc | |
parent | Revert "Several fixes for broken Mac build" (diff) | |
download | breakpad-049a1532e57b2631b6f228f078759323a13674d0.tar.xz |
Wire up stack sanitization and skipping to WriteMinidump
This makes the parameters stored in the MinidumpDescriptor structure
functional for minidumps, analogously to how they are applied to
microdumps.
BUG=664460
Change-Id: I7578e7a1638cea8f0445b18d4bbdaf5e0a32d808
Reviewed-on: https://chromium-review.googlesource.com/435380
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Diffstat (limited to 'src/client/linux/handler/exception_handler.cc')
-rw-r--r-- | src/client/linux/handler/exception_handler.cc | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc index dd3cbc67..d372a10c 100644 --- a/src/client/linux/handler/exception_handler.cc +++ b/src/client/linux/handler/exception_handler.cc @@ -586,15 +586,20 @@ void ExceptionHandler::WaitForContinueSignal() { // Runs on the cloned process. bool ExceptionHandler::DoDump(pid_t crashing_process, const void* context, size_t context_size) { + const bool may_skip_dump = + minidump_descriptor_.skip_dump_if_principal_mapping_not_referenced(); + const uintptr_t principal_mapping_address = + minidump_descriptor_.address_within_principal_mapping(); + const bool sanitize_stacks = minidump_descriptor_.sanitize_stacks(); if (minidump_descriptor_.IsMicrodumpOnConsole()) { return google_breakpad::WriteMicrodump( crashing_process, context, context_size, mapping_list_, - minidump_descriptor_.skip_dump_if_principal_mapping_not_referenced(), - minidump_descriptor_.address_within_principal_mapping(), - minidump_descriptor_.sanitize_stacks(), + may_skip_dump, + principal_mapping_address, + sanitize_stacks, *minidump_descriptor_.microdump_extra_info()); } if (minidump_descriptor_.IsFD()) { @@ -604,7 +609,10 @@ bool ExceptionHandler::DoDump(pid_t crashing_process, const void* context, context, context_size, mapping_list_, - app_memory_list_); + app_memory_list_, + may_skip_dump, + principal_mapping_address, + sanitize_stacks); } return google_breakpad::WriteMinidump(minidump_descriptor_.path(), minidump_descriptor_.size_limit(), @@ -612,7 +620,10 @@ bool ExceptionHandler::DoDump(pid_t crashing_process, const void* context, context, context_size, mapping_list_, - app_memory_list_); + app_memory_list_, + may_skip_dump, + principal_mapping_address, + sanitize_stacks); } // static |