| 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 |