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 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 //! #ExceptionFlags field of a minidump file. | 415 //! #ExceptionFlags field of a minidump file. |
416 //! | 416 //! |
417 //! \todo Document the possible values by OS. There may be OS-specific enums | 417 //! \todo Document the possible values by OS. There may be OS-specific enums |
418 //! in minidump_extensions.h. | 418 //! in minidump_extensions.h. |
419 uint32_t ExceptionCode; | 419 uint32_t ExceptionCode; |
420 | 420 |
421 //! \brief Additional exception flags that further identify the exception, in | 421 //! \brief Additional exception flags that further identify the exception, in |
422 //! operating system-specific values. | 422 //! operating system-specific values. |
423 //! | 423 //! |
424 //! For Mac OS X minidumps, this will be the value of the exception code at | 424 //! For Mac OS X minidumps, this will be the value of the exception code at |
425 //! index 0 as received by a Mach exception handler. For exception type | 425 //! index 0 as received by a Mach exception handler, except: |
426 //! `EXC_CRASH` generated from another preceding exception, the original | 426 //! * For exception type `EXC_CRASH` generated from another preceding |
427 //! exception code will appear here, not the code as received by the Mach | 427 //! exception, the original exception code will appear here, not the code |
428 //! exception handler. The code as it was received will appear at index 1 of | 428 //! as received by the Mach exception handler. |
429 //! #ExceptionInformation. | 429 //! * For exception types `EXC_RESOURCE` and `EXC_GUARD`, the high 32 bits of |
| 430 //! the code received by the Mach exception handler will appear here. |
| 431 //! |
| 432 //! In all cases for Mac OS X minidumps, the code as it was received by the |
| 433 //! Mach exception handler will appear at index 1 of #ExceptionInformation. |
430 //! | 434 //! |
431 //! \todo Document the possible values by OS. There may be OS-specific enums | 435 //! \todo Document the possible values by OS. There may be OS-specific enums |
432 //! in minidump_extensions.h. | 436 //! in minidump_extensions.h. |
433 uint32_t ExceptionFlags; | 437 uint32_t ExceptionFlags; |
434 | 438 |
435 //! \brief An address, in the address space of the process that this minidump | 439 //! \brief An address, in the address space of the process that this minidump |
436 //! file contains a snapshot of, of another MINIDUMP_EXCEPTION. This field | 440 //! file contains a snapshot of, of another MINIDUMP_EXCEPTION. This field |
437 //! is used for nested exceptions. | 441 //! is used for nested exceptions. |
438 uint64_t ExceptionRecord; | 442 uint64_t ExceptionRecord; |
439 | 443 |
440 //! \brief The address that caused the exception. | 444 //! \brief The address that caused the exception. |
441 //! | 445 //! |
442 //! This may be the address that caused a fault on data access, or it may be | 446 //! This may be the address that caused a fault on data access, or it may be |
443 //! the instruction pointer that contained an offending instruction. | 447 //! the instruction pointer that contained an offending instruction. |
444 uint64_t ExceptionAddress; | 448 uint64_t ExceptionAddress; |
445 | 449 |
446 //! \brief The number of valid elements in #ExceptionInformation. | 450 //! \brief The number of valid elements in #ExceptionInformation. |
447 uint32_t NumberParameters; | 451 uint32_t NumberParameters; |
448 | 452 |
449 uint32_t __unusedAlignment; | 453 uint32_t __unusedAlignment; |
450 | 454 |
451 //! \brief Additional information about the exception, specific to the | 455 //! \brief Additional information about the exception, specific to the |
452 //! operating system and possibly the #ExceptionCode. | 456 //! operating system and possibly the #ExceptionCode. |
453 //! | 457 //! |
454 //! For Mac OS X minidumps, this will contain the exception type as received | 458 //! For Mac OS X minidumps, this will contain the exception type as received |
455 //! by a Mach exception handler and the values of the `codes[0]` and | 459 //! by a Mach exception handler and the values of the `codes[0]` and |
456 //! `codes[1]` (exception code and subcode) parameters supplied to the Mach | 460 //! `codes[1]` (exception code and subcode) parameters supplied to the Mach |
457 //! exception handler. Unlike #ExceptionCode and #ExceptionFlags, the values | 461 //! exception handler. Unlike #ExceptionCode and #ExceptionFlags, the values |
458 //! received by a Mach exception handler are used directly here even for the | 462 //! received by a Mach exception handler are used directly here even for the |
459 //! `EXC_CRASH` exception type. | 463 //! `EXC_CRASH`, `EXC_RESOURCE`, and `EXC_GUARD` exception types. |
460 uint64_t ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; | 464 uint64_t ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; |
461 }; | 465 }; |
462 | 466 |
463 //! \brief Information about the exception that triggered a minidump file’s | 467 //! \brief Information about the exception that triggered a minidump file’s |
464 //! generation. | 468 //! generation. |
465 struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION_STREAM { | 469 struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION_STREAM { |
466 //! \brief The ID of the thread that caused the exception. | 470 //! \brief The ID of the thread that caused the exception. |
467 //! | 471 //! |
468 //! \sa MINIDUMP_THREAD::ThreadId | 472 //! \sa MINIDUMP_THREAD::ThreadId |
469 uint32_t ThreadId; | 473 uint32_t ThreadId; |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
840 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present. | 844 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present. |
841 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers | 845 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers |
842 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST | 846 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST |
843 //! stream. This type of minidump file also includes a | 847 //! stream. This type of minidump file also includes a |
844 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around | 848 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around |
845 //! the exception address or the instruction pointer. | 849 //! the exception address or the instruction pointer. |
846 MiniDumpNormal = 0x00000000, | 850 MiniDumpNormal = 0x00000000, |
847 }; | 851 }; |
848 | 852 |
849 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_ | 853 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_ |
OLD | NEW |