From 049a1532e57b2631b6f228f078759323a13674d0 Mon Sep 17 00:00:00 2001 From: Tobias Sargeant Date: Thu, 2 Feb 2017 17:11:13 +0000 Subject: 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 --- src/client/linux/handler/exception_handler.cc | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'src/client/linux/handler') 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 -- cgit v1.2.1