aboutsummaryrefslogtreecommitdiff
path: root/src/google_breakpad/processor/process_state.h
diff options
context:
space:
mode:
authorJoshua Peraza <jperaza@chromium.org>2017-01-19 11:18:41 -0800
committerJoshua Peraza <jperaza@chromium.org>2017-01-19 19:33:56 +0000
commit0924d424e444d57dd95c647652a11f2d655c11a0 (patch)
tree03023e635cd25fbaf8b532c3151f6b397bcd12b4 /src/google_breakpad/processor/process_state.h
parentAdd API to skip dump if crashing thread doesn't reference a given module (2) (diff)
downloadbreakpad-0924d424e444d57dd95c647652a11f2d655c11a0.tar.xz
Populate stack frames with unloaded module info.
This CL hits lots of source files because: 1. An update to the CodeModule virtual class. I added an is_loaded method to specify whether the module is loaded. There were several mocks/test classes that needed to be updated with an implementation. An alternative to this route would be to modify MinidumpUnloadedModule::code_file to prepend "Unloaded_" to the module name. 2. Added an unloaded_modules parameter to StackFrameSymbolizer::FillSourceLineInfo. BUG= Change-Id: Ic9c7f7c7b7e932a154a5d4ccf292c1527d8da09f Reviewed-on: https://chromium-review.googlesource.com/430241 Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
Diffstat (limited to 'src/google_breakpad/processor/process_state.h')
-rw-r--r--src/google_breakpad/processor/process_state.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/google_breakpad/processor/process_state.h b/src/google_breakpad/processor/process_state.h
index 9f12b0c6..21bef42c 100644
--- a/src/google_breakpad/processor/process_state.h
+++ b/src/google_breakpad/processor/process_state.h
@@ -91,7 +91,7 @@ enum ExploitabilityRating {
class ProcessState {
public:
- ProcessState() : modules_(NULL) { Clear(); }
+ ProcessState() : modules_(NULL), unloaded_modules_(NULL) { Clear(); }
~ProcessState();
// Resets the ProcessState to its default values
@@ -111,6 +111,7 @@ class ProcessState {
}
const SystemInfo* system_info() const { return &system_info_; }
const CodeModules* modules() const { return modules_; }
+ const CodeModules* unloaded_modules() const { return unloaded_modules_; }
const vector<linked_ptr<const CodeModule> >* shrunk_range_modules() const {
return &shrunk_range_modules_;
}
@@ -177,6 +178,10 @@ class ProcessState {
// ProcessState.
const CodeModules *modules_;
+ // The modules that have been unloaded from the process represented by the
+ // ProcessState.
+ const CodeModules *unloaded_modules_;
+
// The modules which virtual address ranges were shrunk down due to
// virtual address conflicts.
vector<linked_ptr<const CodeModule> > shrunk_range_modules_;