Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: third_party/crashpad/crashpad/compat/non_win/dbghelp.h

Issue 2555353002: Update Crashpad to 32981a3ee9d7c2769fb27afa038fe2e194cfa329 (Closed)
Patch Set: fix readme Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 //! \brief The system’s operating system type, which distinguishes between 272 //! \brief The system’s operating system type, which distinguishes between
273 //! “desktop” or “workstation” systems and “server” systems. This may be a 273 //! “desktop” or “workstation” systems and “server” systems. This may be a
274 //! \ref VER_NT_x "VER_NT_*" value, or a member of 274 //! \ref VER_NT_x "VER_NT_*" value, or a member of
275 //! crashpad::MinidumpOSType. 275 //! crashpad::MinidumpOSType.
276 uint8_t ProductType; 276 uint8_t ProductType;
277 277
278 //! \brief The system’s operating system version number’s first (major) 278 //! \brief The system’s operating system version number’s first (major)
279 //! component. 279 //! component.
280 //! 280 //!
281 //! - For Windows 7 (NT 6.1) SP1, version 6.1.7601, this would be `6`. 281 //! - For Windows 7 (NT 6.1) SP1, version 6.1.7601, this would be `6`.
282 //! - For Mac OS X 10.9.2, this would be `10`. 282 //! - For macOS 10.12.1, this would be `10`.
283 uint32_t MajorVersion; 283 uint32_t MajorVersion;
284 284
285 //! \brief The system’s operating system version number’s second (minor) 285 //! \brief The system’s operating system version number’s second (minor)
286 //! component. 286 //! component.
287 //! 287 //!
288 //! - For Windows 7 (NT 6.1) SP1, version 6.1.7601, this would be `1`. 288 //! - For Windows 7 (NT 6.1) SP1, version 6.1.7601, this would be `1`.
289 //! - For Mac OS X 10.9.2, this would be `9`. 289 //! - For macOS 10.12.1, this would be `12`.
290 uint32_t MinorVersion; 290 uint32_t MinorVersion;
291 291
292 //! \brief The system’s operating system version number’s third (build or 292 //! \brief The system’s operating system version number’s third (build or
293 //! patch) component. 293 //! patch) component.
294 //! 294 //!
295 //! - For Windows 7 (NT 6.1) SP1, version 6.1.7601, this would be `7601`. 295 //! - For Windows 7 (NT 6.1) SP1, version 6.1.7601, this would be `7601`.
296 //! - For Mac OS X 10.9.2, this would be `2`. 296 //! - For macOS 10.12.1, this would be `1`.
297 uint32_t BuildNumber; 297 uint32_t BuildNumber;
298 298
299 //! \brief The system’s operating system family. This may be a \ref 299 //! \brief The system’s operating system family. This may be a \ref
300 //! VER_PLATFORM_x "VER_PLATFORM_*" value, or a member of 300 //! VER_PLATFORM_x "VER_PLATFORM_*" value, or a member of
301 //! crashpad::MinidumpOS. 301 //! crashpad::MinidumpOS.
302 uint32_t PlatformId; 302 uint32_t PlatformId;
303 303
304 //! \brief ::RVA of a MINIDUMP_STRING containing operating system-specific 304 //! \brief ::RVA of a MINIDUMP_STRING containing operating system-specific
305 //! version information. 305 //! version information.
306 //! 306 //!
307 //! This field further identifies an operating system version beyond its 307 //! This field further identifies an operating system version beyond its
308 //! version number fields. Historically, “CSD” stands for “corrective service 308 //! version number fields. Historically, “CSD” stands for “corrective service
309 //! diskette.” 309 //! diskette.”
310 //! 310 //!
311 //! - On Windows, this is the name of the installed operating system service 311 //! - On Windows, this is the name of the installed operating system service
312 //! pack, such as “Service Pack 1”. If no service pack is installed, this 312 //! pack, such as “Service Pack 1”. If no service pack is installed, this
313 //! field references an empty string. 313 //! field references an empty string.
314 //! - On Mac OS X, this is the operating system build number from `sw_vers 314 //! - On macOS, this is the operating system build number from `sw_vers
315 //! -buildVersion`. For Mac OS X 10.9.2 on most hardware types, this would 315 //! -buildVersion`. For macOS 10.12.1 on most hardware types, this would
316 //! be `13C64`. 316 //! be `16B2657`.
317 //! - On Linux and other Unix-like systems, this is the kernel version from 317 //! - On Linux and other Unix-like systems, this is the kernel version from
318 //! `uname -srvm`, possibly with additional information appended. On 318 //! `uname -srvm`, possibly with additional information appended. On
319 //! Android, the `ro.build.fingerprint` system property is appended. 319 //! Android, the `ro.build.fingerprint` system property is appended.
320 RVA CSDVersionRva; 320 RVA CSDVersionRva;
321 321
322 //! \brief A bitfield identifying products installed on the system. This is 322 //! \brief A bitfield identifying products installed on the system. This is
323 //! composed of \ref VER_SUITE_x "VER_SUITE_*" values. 323 //! composed of \ref VER_SUITE_x "VER_SUITE_*" values.
324 //! 324 //!
325 //! This field is Windows-specific, and has no meaning on other operating 325 //! This field is Windows-specific, and has no meaning on other operating
326 //! systems. 326 //! systems.
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 410
411 //! \brief Structures identifying each thread within the process. 411 //! \brief Structures identifying each thread within the process.
412 MINIDUMP_THREAD Threads[0]; 412 MINIDUMP_THREAD Threads[0];
413 }; 413 };
414 414
415 //! \brief Information about an exception that occurred in the process. 415 //! \brief Information about an exception that occurred in the process.
416 struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION { 416 struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION {
417 //! \brief The top-level exception code identifying the exception, in 417 //! \brief The top-level exception code identifying the exception, in
418 //! operating system-specific values. 418 //! operating system-specific values.
419 //! 419 //!
420 //! For Mac OS X minidumps, this will be an \ref EXC_x "EXC_*" exception type, 420 //! For macOS minidumps, this will be an \ref EXC_x "EXC_*" exception type,
421 //! such as `EXC_BAD_ACCESS`. `EXC_CRASH` will not appear here for exceptions 421 //! such as `EXC_BAD_ACCESS`. `EXC_CRASH` will not appear here for exceptions
422 //! processed as `EXC_CRASH` when generated from another preceding exception: 422 //! processed as `EXC_CRASH` when generated from another preceding exception:
423 //! the original exception code will appear instead. The exception type as it 423 //! the original exception code will appear instead. The exception type as it
424 //! was received will appear at index 0 of #ExceptionInformation. 424 //! was received will appear at index 0 of #ExceptionInformation.
425 //! 425 //!
426 //! For Windows minidumps, this will be an \ref EXCEPTION_x "EXCEPTION_*" 426 //! For Windows minidumps, this will be an `EXCEPTION_*` exception type, such
427 //! exception type, such as `EXCEPTION_ACCESS_VIOLATION`. 427 //! as `EXCEPTION_ACCESS_VIOLATION`.
428 //! 428 //!
429 //! \note This field is named ExceptionCode, but what is known as the 429 //! \note This field is named ExceptionCode, but what is known as the
430 //! “exception code” on Mac OS X/Mach is actually stored in the 430 //! “exception code” on macOS/Mach is actually stored in the
431 //! #ExceptionFlags field of a minidump file. 431 //! #ExceptionFlags field of a minidump file.
432 //! 432 //!
433 //! \todo Document the possible values by OS. There may be OS-specific enums 433 //! \todo Document the possible values by OS. There may be OS-specific enums
434 //! in minidump_extensions.h. 434 //! in minidump_extensions.h.
435 uint32_t ExceptionCode; 435 uint32_t ExceptionCode;
436 436
437 //! \brief Additional exception flags that further identify the exception, in 437 //! \brief Additional exception flags that further identify the exception, in
438 //! operating system-specific values. 438 //! operating system-specific values.
439 //! 439 //!
440 //! For Mac OS X minidumps, this will be the value of the exception code at 440 //! For macOS minidumps, this will be the value of the exception code at index
441 //! index 0 as received by a Mach exception handler, except: 441 //! 0 as received by a Mach exception handler, except:
442 //! * For exception type `EXC_CRASH` generated from another preceding 442 //! * For exception type `EXC_CRASH` generated from another preceding
443 //! exception, the original exception code will appear here, not the code 443 //! exception, the original exception code will appear here, not the code
444 //! as received by the Mach exception handler. 444 //! as received by the Mach exception handler.
445 //! * For exception types `EXC_RESOURCE` and `EXC_GUARD`, the high 32 bits of 445 //! * For exception types `EXC_RESOURCE` and `EXC_GUARD`, the high 32 bits of
446 //! the code received by the Mach exception handler will appear here. 446 //! the code received by the Mach exception handler will appear here.
447 //! 447 //!
448 //! In all cases for Mac OS X minidumps, the code as it was received by the 448 //! In all cases for macOS minidumps, the code as it was received by the Mach
449 //! Mach exception handler will appear at index 1 of #ExceptionInformation. 449 //! exception handler will appear at index 1 of #ExceptionInformation.
450 //! 450 //!
451 //! For Windows minidumps, this will either be `0` if the exception is 451 //! For Windows minidumps, this will either be `0` if the exception is
452 //! continuable, or `EXCEPTION_NONCONTINUABLE` to indicate a noncontinuable 452 //! continuable, or `EXCEPTION_NONCONTINUABLE` to indicate a noncontinuable
453 //! exception. 453 //! exception.
454 //! 454 //!
455 //! \todo Document the possible values by OS. There may be OS-specific enums 455 //! \todo Document the possible values by OS. There may be OS-specific enums
456 //! in minidump_extensions.h. 456 //! in minidump_extensions.h.
457 uint32_t ExceptionFlags; 457 uint32_t ExceptionFlags;
458 458
459 //! \brief An address, in the address space of the process that this minidump 459 //! \brief An address, in the address space of the process that this minidump
460 //! file contains a snapshot of, of another MINIDUMP_EXCEPTION. This field 460 //! file contains a snapshot of, of another MINIDUMP_EXCEPTION. This field
461 //! is used for nested exceptions. 461 //! is used for nested exceptions.
462 uint64_t ExceptionRecord; 462 uint64_t ExceptionRecord;
463 463
464 //! \brief The address that caused the exception. 464 //! \brief The address that caused the exception.
465 //! 465 //!
466 //! This may be the address that caused a fault on data access, or it may be 466 //! This may be the address that caused a fault on data access, or it may be
467 //! the instruction pointer that contained an offending instruction. 467 //! the instruction pointer that contained an offending instruction.
468 uint64_t ExceptionAddress; 468 uint64_t ExceptionAddress;
469 469
470 //! \brief The number of valid elements in #ExceptionInformation. 470 //! \brief The number of valid elements in #ExceptionInformation.
471 uint32_t NumberParameters; 471 uint32_t NumberParameters;
472 472
473 uint32_t __unusedAlignment; 473 uint32_t __unusedAlignment;
474 474
475 //! \brief Additional information about the exception, specific to the 475 //! \brief Additional information about the exception, specific to the
476 //! operating system and possibly the #ExceptionCode. 476 //! operating system and possibly the #ExceptionCode.
477 //! 477 //!
478 //! For Mac OS X minidumps, this will contain the exception type as received 478 //! For macOS minidumps, this will contain the exception type as received by a
479 //! by a Mach exception handler and the values of the `codes[0]` and 479 //! Mach exception handler and the values of the `codes[0]` and `codes[1]`
480 //! `codes[1]` (exception code and subcode) parameters supplied to the Mach 480 //! (exception code and subcode) parameters supplied to the Mach exception
481 //! exception handler. Unlike #ExceptionCode and #ExceptionFlags, the values 481 //! handler. Unlike #ExceptionCode and #ExceptionFlags, the values received by
482 //! received by a Mach exception handler are used directly here even for the 482 //! a Mach exception handler are used directly here even for the `EXC_CRASH`,
483 //! `EXC_CRASH`, `EXC_RESOURCE`, and `EXC_GUARD` exception types. 483 //! `EXC_RESOURCE`, and `EXC_GUARD` exception types.
484 484
485 //! For Windows, these are additional arguments (if any) as provided to 485 //! For Windows, these are additional arguments (if any) as provided to
486 //! `RaiseException()`. 486 //! `RaiseException()`.
487 uint64_t ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; 487 uint64_t ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
488 }; 488 };
489 489
490 //! \brief Information about the exception that triggered a minidump file’s 490 //! \brief Information about the exception that triggered a minidump file’s
491 //! generation. 491 //! generation.
492 struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION_STREAM { 492 struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION_STREAM {
493 //! \brief The ID of the thread that caused the exception. 493 //! \brief The ID of the thread that caused the exception.
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
975 struct __attribute__((packed, aligned(4))) MINIDUMP_MEMORY_INFO { 975 struct __attribute__((packed, aligned(4))) MINIDUMP_MEMORY_INFO {
976 //! \brief The base address of the region of pages. 976 //! \brief The base address of the region of pages.
977 uint64_t BaseAddress; 977 uint64_t BaseAddress;
978 978
979 //! \brief The base address of a range of pages in this region. The page is 979 //! \brief The base address of a range of pages in this region. The page is
980 //! contained within this memory region. 980 //! contained within this memory region.
981 uint64_t AllocationBase; 981 uint64_t AllocationBase;
982 982
983 //! \brief The memory protection when the region was initially allocated. This 983 //! \brief The memory protection when the region was initially allocated. This
984 //! member can be one of the memory protection options (such as 984 //! member can be one of the memory protection options (such as
985 //! \ref PAGE_x PAGE_EXECUTE, \ref PAGE_x PAGE_NOACCESS, etc.), along with 985 //! \ref PAGE_x "PAGE_EXECUTE", \ref PAGE_x "PAGE_NOACCESS", etc.), along
986 //! \ref PAGE_x PAGE_GUARD or \ref PAGE_x PAGE_NOCACHE, as needed. 986 //! with \ref PAGE_x "PAGE_GUARD" or \ref PAGE_x "PAGE_NOCACHE", as
987 //! needed.
987 uint32_t AllocationProtect; 988 uint32_t AllocationProtect;
988 989
989 uint32_t __alignment1; 990 uint32_t __alignment1;
990 991
991 //! \brief The size of the region beginning at the base address in which all 992 //! \brief The size of the region beginning at the base address in which all
992 //! pages have identical attributes, in bytes. 993 //! pages have identical attributes, in bytes.
993 uint64_t RegionSize; 994 uint64_t RegionSize;
994 995
995 //! \brief The state of the pages in the region. This can be one of 996 //! \brief The state of the pages in the region. This can be one of
996 //! \ref MEM_x MEM_COMMIT, \ref MEM_x MEM_FREE, or \ref MEM_x MEM_RESERVE. 997 //! \ref MEM_x "MEM_COMMIT", \ref MEM_x "MEM_FREE", or \ref MEM_x
998 //! "MEM_RESERVE".
997 uint32_t State; 999 uint32_t State;
998 1000
999 //! \brief The access protection of the pages in the region. This member is 1001 //! \brief The access protection of the pages in the region. This member is
1000 //! one of the values listed for the #AllocationProtect member. 1002 //! one of the values listed for the #AllocationProtect member.
1001 uint32_t Protect; 1003 uint32_t Protect;
1002 1004
1003 //! \brief The type of pages in the region. This can be one of \ref MEM_x 1005 //! \brief The type of pages in the region. This can be one of \ref MEM_x
1004 //! MEM_IMAGE, \ref MEM_x MEM_MAPPED, or \ref MEM_x MEM_PRIVATE. 1006 //! "MEM_IMAGE", \ref MEM_x "MEM_MAPPED", or \ref MEM_x "MEM_PRIVATE".
1005 uint32_t Type; 1007 uint32_t Type;
1006 1008
1007 uint32_t __alignment2; 1009 uint32_t __alignment2;
1008 }; 1010 };
1009 1011
1010 //! \brief Contains a list of memory regions. 1012 //! \brief Contains a list of memory regions.
1011 struct __attribute__((packed, aligned(4))) MINIDUMP_MEMORY_INFO_LIST { 1013 struct __attribute__((packed, aligned(4))) MINIDUMP_MEMORY_INFO_LIST {
1012 //! \brief The size of the header data for the stream, in bytes. This is 1014 //! \brief The size of the header data for the stream, in bytes. This is
1013 //! generally sizeof(MINIDUMP_MEMORY_INFO_LIST). 1015 //! generally sizeof(MINIDUMP_MEMORY_INFO_LIST).
1014 uint32_t SizeOfHeader; 1016 uint32_t SizeOfHeader;
(...skipping 23 matching lines...) Expand all
1038 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present. 1040 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present.
1039 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers 1041 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers
1040 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST 1042 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST
1041 //! stream. This type of minidump file also includes a 1043 //! stream. This type of minidump file also includes a
1042 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around 1044 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around
1043 //! the exception address or the instruction pointer. 1045 //! the exception address or the instruction pointer.
1044 MiniDumpNormal = 0x00000000, 1046 MiniDumpNormal = 0x00000000,
1045 }; 1047 };
1046 1048
1047 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_ 1049 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_
OLDNEW
« no previous file with comments | « third_party/crashpad/crashpad/compat/mac/mach-o/getsect.cc ('k') | third_party/crashpad/crashpad/compat/non_win/winnt.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698