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 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 kMinidumpCPUArchitectureAMD64 = PROCESSOR_ARCHITECTURE_AMD64, | 155 kMinidumpCPUArchitectureAMD64 = PROCESSOR_ARCHITECTURE_AMD64, |
156 | 156 |
157 //! \brief A 32-bit x86 process running on IA-64 (Itanium). | 157 //! \brief A 32-bit x86 process running on IA-64 (Itanium). |
158 //! | 158 //! |
159 //! \note This value is not used in minidump files for 32-bit x86 processes | 159 //! \note This value is not used in minidump files for 32-bit x86 processes |
160 //! running on a 64-bit-capable x86 CPU and operating system. In that | 160 //! running on a 64-bit-capable x86 CPU and operating system. In that |
161 //! configuration, #kMinidumpCPUArchitectureX86 is used instead. | 161 //! configuration, #kMinidumpCPUArchitectureX86 is used instead. |
162 kMinidumpCPUArchitectureX86Win64 = PROCESSOR_ARCHITECTURE_IA32_ON_WIN64, | 162 kMinidumpCPUArchitectureX86Win64 = PROCESSOR_ARCHITECTURE_IA32_ON_WIN64, |
163 | 163 |
164 kMinidumpCPUArchitectureNeutral = PROCESSOR_ARCHITECTURE_NEUTRAL, | 164 kMinidumpCPUArchitectureNeutral = PROCESSOR_ARCHITECTURE_NEUTRAL, |
| 165 |
| 166 //! \brief 64-bit ARM. |
| 167 //! |
| 168 //! These systems identify their CPUs generically as “arm64” or “aarch64”, or |
| 169 //! with more specific names such as “armv8”. |
| 170 //! |
| 171 //! \sa #kMinidumpCPUArchitectureARM64Breakpad |
| 172 kMinidumpCPUArchitectureARM64 = PROCESSOR_ARCHITECTURE_ARM64, |
| 173 |
| 174 kMinidumpCPUArchitectureARM32Win64 = PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64, |
165 kMinidumpCPUArchitectureSPARC = 0x8001, | 175 kMinidumpCPUArchitectureSPARC = 0x8001, |
166 | 176 |
167 //! \brief 64-bit PowerPC. | 177 //! \brief 64-bit PowerPC. |
168 //! | 178 //! |
169 //! These systems identify their CPUs generically as “ppc64”, or with more | 179 //! These systems identify their CPUs generically as “ppc64”, or with more |
170 //! specific names such as “ppc970”. | 180 //! specific names such as “ppc970”. |
171 kMinidumpCPUArchitecturePPC64 = 0x8002, | 181 kMinidumpCPUArchitecturePPC64 = 0x8002, |
172 | 182 |
173 //! \brief 64-bit ARM. | 183 //! \brief Used by Breakpad for 64-bit ARM. |
174 //! | 184 //! |
175 //! These systems identify their CPUs generically as “arm64” or “aarch64”, or | 185 //! \deprecated Use #kMinidumpCPUArchitectureARM64 instead. |
176 //! with more specific names such as “armv8”. | 186 kMinidumpCPUArchitectureARM64Breakpad = 0x8003, |
177 kMinidumpCPUArchitectureARM64 = 0x8003, | |
178 | 187 |
179 //! \brief Unknown CPU architecture. | 188 //! \brief Unknown CPU architecture. |
180 kMinidumpCPUArchitectureUnknown = PROCESSOR_ARCHITECTURE_UNKNOWN, | 189 kMinidumpCPUArchitectureUnknown = PROCESSOR_ARCHITECTURE_UNKNOWN, |
181 }; | 190 }; |
182 | 191 |
183 //! \brief Operating system type values for MINIDUMP_SYSTEM_INFO::ProductType. | 192 //! \brief Operating system type values for MINIDUMP_SYSTEM_INFO::ProductType. |
184 //! | 193 //! |
185 //! \sa \ref VER_NT_x "VER_NT_*" | 194 //! \sa \ref VER_NT_x "VER_NT_*" |
186 enum MinidumpOSType : uint8_t { | 195 enum MinidumpOSType : uint8_t { |
187 //! \brief A “desktop” or “workstation” system. | 196 //! \brief A “desktop” or “workstation” system. |
(...skipping 14 matching lines...) Expand all Loading... |
202 kMinidumpOSWin32s = VER_PLATFORM_WIN32s, | 211 kMinidumpOSWin32s = VER_PLATFORM_WIN32s, |
203 | 212 |
204 //! \brief Windows 95, Windows 98, and Windows Me. | 213 //! \brief Windows 95, Windows 98, and Windows Me. |
205 kMinidumpOSWin32Windows = VER_PLATFORM_WIN32_WINDOWS, | 214 kMinidumpOSWin32Windows = VER_PLATFORM_WIN32_WINDOWS, |
206 | 215 |
207 //! \brief Windows NT, Windows 2000, and later. | 216 //! \brief Windows NT, Windows 2000, and later. |
208 kMinidumpOSWin32NT = VER_PLATFORM_WIN32_NT, | 217 kMinidumpOSWin32NT = VER_PLATFORM_WIN32_NT, |
209 | 218 |
210 kMinidumpOSUnix = 0x8000, | 219 kMinidumpOSUnix = 0x8000, |
211 | 220 |
212 //! \brief Mac OS X, Darwin for traditional systems. | 221 //! \brief macOS, Darwin for traditional systems. |
213 kMinidumpOSMacOSX = 0x8101, | 222 kMinidumpOSMacOSX = 0x8101, |
214 | 223 |
215 //! \brief iOS, Darwin for mobile devices. | 224 //! \brief iOS, Darwin for mobile devices. |
216 kMinidumpOSiOS = 0x8102, | 225 kMinidumpOSiOS = 0x8102, |
217 | 226 |
218 //! \brief Linux, not including Android. | 227 //! \brief Linux, not including Android. |
219 kMinidumpOSLinux = 0x8201, | 228 kMinidumpOSLinux = 0x8201, |
220 | 229 |
221 kMinidumpOSSolaris = 0x8202, | 230 kMinidumpOSSolaris = 0x8202, |
222 | 231 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 //! minidump file must contain a module list stream | 278 //! minidump file must contain a module list stream |
270 //! (::kMinidumpStreamTypeModuleList) in order for this structure to appear. | 279 //! (::kMinidumpStreamTypeModuleList) in order for this structure to appear. |
271 //! | 280 //! |
272 //! This structure is versioned. When changing this structure, leave the | 281 //! This structure is versioned. When changing this structure, leave the |
273 //! existing structure intact so that earlier parsers will be able to understand | 282 //! existing structure intact so that earlier parsers will be able to understand |
274 //! the fields they are aware of, and make additions at the end of the | 283 //! the fields they are aware of, and make additions at the end of the |
275 //! structure. Revise #kVersion and document each field’s validity based on | 284 //! structure. Revise #kVersion and document each field’s validity based on |
276 //! #version, so that newer parsers will be able to determine whether the added | 285 //! #version, so that newer parsers will be able to determine whether the added |
277 //! fields are valid or not. | 286 //! fields are valid or not. |
278 //! | 287 //! |
279 //! \sa #MinidumpModuleCrashpadInfoList | 288 //! \sa MinidumpModuleCrashpadInfoList |
280 struct ALIGNAS(4) PACKED MinidumpModuleCrashpadInfo { | 289 struct ALIGNAS(4) PACKED MinidumpModuleCrashpadInfo { |
281 //! \brief The structure’s currently-defined version number. | 290 //! \brief The structure’s currently-defined version number. |
282 //! | 291 //! |
283 //! \sa version | 292 //! \sa version |
284 static const uint32_t kVersion = 1; | 293 static const uint32_t kVersion = 1; |
285 | 294 |
286 //! \brief The structure’s version number. | 295 //! \brief The structure’s version number. |
287 //! | 296 //! |
288 //! Readers can use this field to determine which other fields in the | 297 //! Readers can use this field to determine which other fields in the |
289 //! structure are valid. Upon encountering a value greater than #kVersion, a | 298 //! structure are valid. Upon encountering a value greater than #kVersion, a |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 | 425 |
417 //! \brief A MinidumpSimpleStringDictionary pointing to strings interpreted as | 426 //! \brief A MinidumpSimpleStringDictionary pointing to strings interpreted as |
418 //! key-value pairs. | 427 //! key-value pairs. |
419 //! | 428 //! |
420 //! These key-value pairs correspond to | 429 //! These key-value pairs correspond to |
421 //! ProcessSnapshot::AnnotationsSimpleMap(). | 430 //! ProcessSnapshot::AnnotationsSimpleMap(). |
422 //! | 431 //! |
423 //! This field is present when #version is at least `1`. | 432 //! This field is present when #version is at least `1`. |
424 MINIDUMP_LOCATION_DESCRIPTOR simple_annotations; | 433 MINIDUMP_LOCATION_DESCRIPTOR simple_annotations; |
425 | 434 |
426 //! \brief A pointer to a #MinidumpModuleCrashpadInfoList structure. | 435 //! \brief A pointer to a MinidumpModuleCrashpadInfoList structure. |
427 //! | 436 //! |
428 //! This field is present when #version is at least `1`. | 437 //! This field is present when #version is at least `1`. |
429 MINIDUMP_LOCATION_DESCRIPTOR module_list; | 438 MINIDUMP_LOCATION_DESCRIPTOR module_list; |
430 }; | 439 }; |
431 | 440 |
432 #if defined(COMPILER_MSVC) | 441 #if defined(COMPILER_MSVC) |
433 #pragma pack(pop) | 442 #pragma pack(pop) |
434 #endif // COMPILER_MSVC | 443 #endif // COMPILER_MSVC |
435 #undef PACKED | 444 #undef PACKED |
436 | 445 |
437 MSVC_POP_WARNING(); // C4200 | 446 MSVC_POP_WARNING(); // C4200 |
438 | 447 |
439 } // namespace crashpad | 448 } // namespace crashpad |
440 | 449 |
441 #endif // CRASHPAD_MINIDUMP_MINIDUMP_EXTENSIONS_H_ | 450 #endif // CRASHPAD_MINIDUMP_MINIDUMP_EXTENSIONS_H_ |
OLD | NEW |