| 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 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 //! The `extended_registers` field is valid and contains `fxsave` data. | 105 //! The `extended_registers` field is valid and contains `fxsave` data. |
| 106 kMinidumpContextX86Extended = kMinidumpContextX86 | 0x00000020, | 106 kMinidumpContextX86Extended = kMinidumpContextX86 | 0x00000020, |
| 107 | 107 |
| 108 //! \brief Indicates the validity of `xsave` data (`CONTEXT_XSTATE`). | 108 //! \brief Indicates the validity of `xsave` data (`CONTEXT_XSTATE`). |
| 109 //! | 109 //! |
| 110 //! The context contains `xsave` data. This is used with an extended context | 110 //! The context contains `xsave` data. This is used with an extended context |
| 111 //! structure not currently defined here. | 111 //! structure not currently defined here. |
| 112 kMinidumpContextX86Xstate = kMinidumpContextX86 | 0x00000040, | 112 kMinidumpContextX86Xstate = kMinidumpContextX86 | 0x00000040, |
| 113 | 113 |
| 114 //! \brief Indicates the validity of control, integer, and segment registers. | 114 //! \brief Indicates the validity of control, integer, and segment registers. |
| 115 //! (`CONTEXT_FULL`). |
| 115 kMinidumpContextX86Full = kMinidumpContextX86Control | | 116 kMinidumpContextX86Full = kMinidumpContextX86Control | |
| 116 kMinidumpContextX86Integer | | 117 kMinidumpContextX86Integer | |
| 117 kMinidumpContextX86Segment, | 118 kMinidumpContextX86Segment, |
| 118 | 119 |
| 119 //! \brief Indicates the validity of all registers except `xsave` data. | 120 //! \brief Indicates the validity of all registers except `xsave` data. |
| 121 //! (`CONTEXT_ALL`). |
| 120 kMinidumpContextX86All = kMinidumpContextX86Full | | 122 kMinidumpContextX86All = kMinidumpContextX86Full | |
| 121 kMinidumpContextX86FloatingPoint | | 123 kMinidumpContextX86FloatingPoint | |
| 122 kMinidumpContextX86Debug | | 124 kMinidumpContextX86Debug | |
| 123 kMinidumpContextX86Extended, | 125 kMinidumpContextX86Extended, |
| 124 }; | 126 }; |
| 125 | 127 |
| 126 //! \brief A 32-bit x86 CPU context (register state) carried in a minidump file. | 128 //! \brief A 32-bit x86 CPU context (register state) carried in a minidump file. |
| 127 //! | 129 //! |
| 128 //! This is analogous to the `CONTEXT` structure on Windows when targeting | 130 //! This is analogous to the `CONTEXT` structure on Windows when targeting |
| 129 //! 32-bit x86. This structure is used instead of `CONTEXT` to make it available | 131 //! 32-bit x86. This structure is used instead of `CONTEXT` to make it available |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 //! \brief Indicates the validity of debug registers | 212 //! \brief Indicates the validity of debug registers |
| 211 //! (`CONTEXT_DEBUG_REGISTERS`). | 213 //! (`CONTEXT_DEBUG_REGISTERS`). |
| 212 //! | 214 //! |
| 213 //! The `dr0` through `dr3`, `dr6`, and `dr7` fields are valid. | 215 //! The `dr0` through `dr3`, `dr6`, and `dr7` fields are valid. |
| 214 kMinidumpContextAMD64Debug = kMinidumpContextAMD64 | 0x00000010, | 216 kMinidumpContextAMD64Debug = kMinidumpContextAMD64 | 0x00000010, |
| 215 | 217 |
| 216 //! \brief Indicates the validity of `xsave` data (`CONTEXT_XSTATE`). | 218 //! \brief Indicates the validity of `xsave` data (`CONTEXT_XSTATE`). |
| 217 //! | 219 //! |
| 218 //! The context contains `xsave` data. This is used with an extended context | 220 //! The context contains `xsave` data. This is used with an extended context |
| 219 //! structure not currently defined here. | 221 //! structure not currently defined here. |
| 220 kMinidumpContextX86Xstate = kMinidumpContextAMD64 | 0x00000040, | 222 kMinidumpContextAMD64Xstate = kMinidumpContextAMD64 | 0x00000040, |
| 221 | 223 |
| 222 //! \brief Indicates the validity of control, integer, and segment registers. | 224 //! \brief Indicates the validity of control, integer, and floating-point |
| 225 //! registers (`CONTEXT_FULL`). |
| 223 kMinidumpContextAMD64Full = kMinidumpContextAMD64Control | | 226 kMinidumpContextAMD64Full = kMinidumpContextAMD64Control | |
| 224 kMinidumpContextAMD64Integer | | 227 kMinidumpContextAMD64Integer | |
| 225 kMinidumpContextAMD64Segment, | 228 kMinidumpContextAMD64FloatingPoint, |
| 226 | 229 |
| 227 //! \brief Indicates the validity of all registers except `xsave` data. | 230 //! \brief Indicates the validity of all registers except `xsave` data |
| 231 //! (`CONTEXT_ALL`). |
| 228 kMinidumpContextAMD64All = kMinidumpContextAMD64Full | | 232 kMinidumpContextAMD64All = kMinidumpContextAMD64Full | |
| 229 kMinidumpContextAMD64FloatingPoint | | 233 kMinidumpContextAMD64Segment | |
| 230 kMinidumpContextAMD64Debug, | 234 kMinidumpContextAMD64Debug, |
| 231 }; | 235 }; |
| 232 | 236 |
| 233 //! \brief An x86_64 (AMD64) CPU context (register state) carried in a minidump | 237 //! \brief An x86_64 (AMD64) CPU context (register state) carried in a minidump |
| 234 //! file. | 238 //! file. |
| 235 //! | 239 //! |
| 236 //! This is analogous to the `CONTEXT` structure on Windows when targeting | 240 //! This is analogous to the `CONTEXT` structure on Windows when targeting |
| 237 //! x86_64. This structure is used instead of `CONTEXT` to make it available | 241 //! x86_64. This structure is used instead of `CONTEXT` to make it available |
| 238 //! when targeting other architectures. | 242 //! when targeting other architectures. |
| 239 struct __attribute__((aligned(16))) MinidumpContextAMD64 { | 243 struct __attribute__((aligned(16))) MinidumpContextAMD64 { |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 uint64_t last_branch_to_rip; | 358 uint64_t last_branch_to_rip; |
| 355 uint64_t last_branch_from_rip; | 359 uint64_t last_branch_from_rip; |
| 356 uint64_t last_exception_to_rip; | 360 uint64_t last_exception_to_rip; |
| 357 uint64_t last_exception_from_rip; | 361 uint64_t last_exception_from_rip; |
| 358 //! \} | 362 //! \} |
| 359 }; | 363 }; |
| 360 | 364 |
| 361 } // namespace crashpad | 365 } // namespace crashpad |
| 362 | 366 |
| 363 #endif // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_ | 367 #endif // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_ |
| OLD | NEW |