OLD | NEW |
1 // Copyright (c) 2006, Google Inc. | 1 // Copyright (c) 2006, Google Inc. |
2 // All rights reserved. | 2 // All rights reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
(...skipping 21 matching lines...) Expand all Loading... |
32 // Author: Mark Mentovai | 32 // Author: Mark Mentovai |
33 | 33 |
34 #ifndef GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__ | 34 #ifndef GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__ |
35 #define GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__ | 35 #define GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__ |
36 | 36 |
37 #include <string> | 37 #include <string> |
38 #include <vector> | 38 #include <vector> |
39 | 39 |
40 #include "common/using_std_string.h" | 40 #include "common/using_std_string.h" |
41 #include "google_breakpad/common/breakpad_types.h" | 41 #include "google_breakpad/common/breakpad_types.h" |
| 42 #include "google_breakpad/processor/code_modules.h" |
| 43 #include "google_breakpad/processor/minidump.h" |
42 #include "google_breakpad/processor/system_info.h" | 44 #include "google_breakpad/processor/system_info.h" |
43 #include "google_breakpad/processor/minidump.h" | 45 #include "processor/linked_ptr.h" |
44 | 46 |
45 namespace google_breakpad { | 47 namespace google_breakpad { |
46 | 48 |
47 using std::vector; | 49 using std::vector; |
48 | 50 |
49 class CallStack; | 51 class CallStack; |
50 class CodeModules; | 52 class CodeModules; |
51 | 53 |
52 enum ExploitabilityRating { | 54 enum ExploitabilityRating { |
53 EXPLOITABILITY_HIGH, // The crash likely represents | 55 EXPLOITABILITY_HIGH, // The crash likely represents |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 string crash_reason() const { return crash_reason_; } | 104 string crash_reason() const { return crash_reason_; } |
103 uint64_t crash_address() const { return crash_address_; } | 105 uint64_t crash_address() const { return crash_address_; } |
104 string assertion() const { return assertion_; } | 106 string assertion() const { return assertion_; } |
105 int requesting_thread() const { return requesting_thread_; } | 107 int requesting_thread() const { return requesting_thread_; } |
106 const vector<CallStack*>* threads() const { return &threads_; } | 108 const vector<CallStack*>* threads() const { return &threads_; } |
107 const vector<MemoryRegion*>* thread_memory_regions() const { | 109 const vector<MemoryRegion*>* thread_memory_regions() const { |
108 return &thread_memory_regions_; | 110 return &thread_memory_regions_; |
109 } | 111 } |
110 const SystemInfo* system_info() const { return &system_info_; } | 112 const SystemInfo* system_info() const { return &system_info_; } |
111 const CodeModules* modules() const { return modules_; } | 113 const CodeModules* modules() const { return modules_; } |
| 114 const vector<linked_ptr<const CodeModule> >* shrunk_range_modules() const { |
| 115 return &shrunk_range_modules_; |
| 116 } |
112 const vector<const CodeModule*>* modules_without_symbols() const { | 117 const vector<const CodeModule*>* modules_without_symbols() const { |
113 return &modules_without_symbols_; | 118 return &modules_without_symbols_; |
114 } | 119 } |
115 const vector<const CodeModule*>* modules_with_corrupt_symbols() const { | 120 const vector<const CodeModule*>* modules_with_corrupt_symbols() const { |
116 return &modules_with_corrupt_symbols_; | 121 return &modules_with_corrupt_symbols_; |
117 } | 122 } |
118 ExploitabilityRating exploitability() const { return exploitability_; } | 123 ExploitabilityRating exploitability() const { return exploitability_; } |
119 | 124 |
120 private: | 125 private: |
121 // MinidumpProcessor and MicrodumpProcessor are responsible for building | 126 // MinidumpProcessor and MicrodumpProcessor are responsible for building |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 vector<CallStack*> threads_; | 170 vector<CallStack*> threads_; |
166 vector<MemoryRegion*> thread_memory_regions_; | 171 vector<MemoryRegion*> thread_memory_regions_; |
167 | 172 |
168 // OS and CPU information. | 173 // OS and CPU information. |
169 SystemInfo system_info_; | 174 SystemInfo system_info_; |
170 | 175 |
171 // The modules that were loaded into the process represented by the | 176 // The modules that were loaded into the process represented by the |
172 // ProcessState. | 177 // ProcessState. |
173 const CodeModules *modules_; | 178 const CodeModules *modules_; |
174 | 179 |
| 180 // The modules which virtual address ranges were shrunk down due to |
| 181 // virtual address conflicts. |
| 182 vector<linked_ptr<const CodeModule> > shrunk_range_modules_; |
| 183 |
175 // The modules that didn't have symbols when the report was processed. | 184 // The modules that didn't have symbols when the report was processed. |
176 vector<const CodeModule*> modules_without_symbols_; | 185 vector<const CodeModule*> modules_without_symbols_; |
177 | 186 |
178 // The modules that had corrupt symbols when the report was processed. | 187 // The modules that had corrupt symbols when the report was processed. |
179 vector<const CodeModule*> modules_with_corrupt_symbols_; | 188 vector<const CodeModule*> modules_with_corrupt_symbols_; |
180 | 189 |
181 // The exploitability rating as determined by the exploitability | 190 // The exploitability rating as determined by the exploitability |
182 // engine. When the exploitability engine is not enabled this | 191 // engine. When the exploitability engine is not enabled this |
183 // defaults to EXPLOITABILITY_NOT_ANALYZED. | 192 // defaults to EXPLOITABILITY_NOT_ANALYZED. |
184 ExploitabilityRating exploitability_; | 193 ExploitabilityRating exploitability_; |
185 }; | 194 }; |
186 | 195 |
187 } // namespace google_breakpad | 196 } // namespace google_breakpad |
188 | 197 |
189 #endif // GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__ | 198 #endif // GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__ |
OLD | NEW |