| OLD | NEW |
| 1 // Copyright 2014 The Crashpad Authors. All rights reserved. | 1 // Copyright 2014 The Crashpad Authors. All rights reserved. |
| 2 // | 2 // |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
| 5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
| 6 // | 6 // |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 // | 8 // |
| 9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 | 106 |
| 107 //! \brief Returns the module’s type. | 107 //! \brief Returns the module’s type. |
| 108 virtual ModuleType GetModuleType() const = 0; | 108 virtual ModuleType GetModuleType() const = 0; |
| 109 | 109 |
| 110 //! \brief Returns the module’s UUID in the \a uuid parameter. | 110 //! \brief Returns the module’s UUID in the \a uuid parameter. |
| 111 //! | 111 //! |
| 112 //! A snapshot module’s UUID is taken directly from the module itself. If the | 112 //! A snapshot module’s UUID is taken directly from the module itself. If the |
| 113 //! module does not have a UUID, the \a uuid parameter will be zeroed out. | 113 //! module does not have a UUID, the \a uuid parameter will be zeroed out. |
| 114 virtual void UUID(crashpad::UUID* uuid) const = 0; | 114 virtual void UUID(crashpad::UUID* uuid) const = 0; |
| 115 | 115 |
| 116 //! \brief Returns diagnostic messages recorded in the module. | 116 //! \brief Returns string annotations recorded in the module. |
| 117 //! | 117 //! |
| 118 //! This method retrieves diagnostic messages recorded in a module. These | 118 //! This method retrieves annotations recorded in a module. These annotations |
| 119 //! messages are intended for diagnostic use, including crash analysis. A | 119 //! are intended for diagnostic use, including crash analysis. A module may |
| 120 //! module may contain multiple diagnostic messages. | 120 //! contain multiple annotations, so they are returned in a vector. |
| 121 //! | 121 //! |
| 122 //! For Mac OS X snapshots, the diagnostic messages are found by interpreting | 122 //! For Mac OS X snapshots, these annotations are found by interpreting the |
| 123 //! the module’s `__DATA, __crash_info` section as | 123 //! module’s `__DATA, __crash_info` section as `crashreporter_annotations_t`. |
| 124 //! `crashreporter_annotations_t`. System libraries using the crash reporter | 124 //! System libraries using the crash reporter client interface may reference |
| 125 //! client interface may reference diagnostic messages in this structure. | 125 //! annotations in this structure. Additional annotations messages may be |
| 126 //! Additional diagnostic messages may be found in other locations, which may | 126 //! found in other locations, which may be module-specific. The dynamic linker |
| 127 //! be module-specific. The dynamic linker (`dyld`) can provide a diagnostic | 127 //! (`dyld`) can provide an annotation at its `_error_string` symbol. |
| 128 //! message at its `_error_string` symbol. | 128 //! |
| 129 virtual std::vector<std::string> DiagnosticMessages() const = 0; | 129 //! The annotations returned by this method do not duplicate those returned by |
| 130 //! AnnotationsSimpleMap(). |
| 131 virtual std::vector<std::string> AnnotationsVector() const = 0; |
| 130 | 132 |
| 131 //! \brief Returns simple annotations recorded in the module. | 133 //! \brief Returns key-value string annotations recorded in the module. |
| 132 //! | 134 //! |
| 133 //! This method retrieves simple annotations recorded in a module. These | 135 //! This method retrieves annotations recorded in a module. These annotations |
| 134 //! annotations are intended for diagnostic use, including crash analysis. | 136 //! are intended for diagnostic use, including crash analysis. “Simple |
| 135 //! Simple annotations are structured as a sequence of key-value pairs. These | 137 //! annotations” are structured as a sequence of key-value pairs, where all |
| 136 //! are referred to in Chrome as “crash keys.” | 138 //! keys and values are strings. These are referred to in Chrome as “crash |
| 139 //! keys.” |
| 137 //! | 140 //! |
| 138 //! For Mac OS X snapshots, simple annotations are found by interpreting | 141 //! For Mac OS X snapshots, these annotations are found by interpreting the |
| 139 //! the `__DATA, __crashpad_info` section as `CrashpadInfo`. Clients can use | 142 //! `__DATA, __crashpad_info` section as `CrashpadInfo`. Clients can use the |
| 140 //! the Crashpad client interface to store annotations in this structure. | 143 //! Crashpad client interface to store annotations in this structure. |
| 141 virtual std::map<std::string, std::string> SimpleAnnotations() const = 0; | 144 //! |
| 145 //! The annotations returned by this method do not duplicate those returned by |
| 146 //! AnnotationsVector(). |
| 147 virtual std::map<std::string, std::string> AnnotationsSimpleMap() const = 0; |
| 142 | 148 |
| 143 protected: | 149 protected: |
| 144 ~ModuleSnapshot() {} | 150 ~ModuleSnapshot() {} |
| 145 }; | 151 }; |
| 146 | 152 |
| 147 } // namespace crashpad | 153 } // namespace crashpad |
| 148 | 154 |
| 149 #endif // CRASHPAD_SNAPSHOT_MODULE_SNAPSHOT_H_ | 155 #endif // CRASHPAD_SNAPSHOT_MODULE_SNAPSHOT_H_ |
| OLD | NEW |