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

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

Issue 1126413008: win: Implement exception snapshot (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: fixes2 Created 5 years, 4 months 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
« no previous file with comments | « client/crashpad_info.cc ('k') | snapshot/exception_snapshot.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 392 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION { 403 struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION {
404 //! \brief The top-level exception code identifying the exception, in 404 //! \brief The top-level exception code identifying the exception, in
405 //! operating system-specific values. 405 //! operating system-specific values.
406 //! 406 //!
407 //! For Mac OS X minidumps, this will be an \ref EXC_x "EXC_*" exception type, 407 //! For Mac OS X minidumps, this will be an \ref EXC_x "EXC_*" exception type,
408 //! such as `EXC_BAD_ACCESS`. `EXC_CRASH` will not appear here for exceptions 408 //! such as `EXC_BAD_ACCESS`. `EXC_CRASH` will not appear here for exceptions
409 //! processed as `EXC_CRASH` when generated from another preceding exception: 409 //! processed as `EXC_CRASH` when generated from another preceding exception:
410 //! the original exception code will appear instead. The exception type as it 410 //! the original exception code will appear instead. The exception type as it
411 //! was received will appear at index 0 of #ExceptionInformation. 411 //! was received will appear at index 0 of #ExceptionInformation.
412 //! 412 //!
413 //! For Windows minidumps, this will be an \ref EXCEPTION_x "EXCEPTION_*"
414 //! exception type, such as `EXCEPTION_ACCESS_VIOLATION`.
415 //!
413 //! \note This field is named ExceptionCode, but what is known as the 416 //! \note This field is named ExceptionCode, but what is known as the
414 //! “exception code” on Mac OS X/Mach is actually stored in the 417 //! “exception code” on Mac OS X/Mach is actually stored in the
415 //! #ExceptionFlags field of a minidump file. 418 //! #ExceptionFlags field of a minidump file.
416 //! 419 //!
417 //! \todo Document the possible values by OS. There may be OS-specific enums 420 //! \todo Document the possible values by OS. There may be OS-specific enums
418 //! in minidump_extensions.h. 421 //! in minidump_extensions.h.
419 uint32_t ExceptionCode; 422 uint32_t ExceptionCode;
420 423
421 //! \brief Additional exception flags that further identify the exception, in 424 //! \brief Additional exception flags that further identify the exception, in
422 //! operating system-specific values. 425 //! operating system-specific values.
423 //! 426 //!
424 //! For Mac OS X minidumps, this will be the value of the exception code at 427 //! 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, except: 428 //! index 0 as received by a Mach exception handler, except:
426 //! * For exception type `EXC_CRASH` generated from another preceding 429 //! * For exception type `EXC_CRASH` generated from another preceding
427 //! exception, the original exception code will appear here, not the code 430 //! exception, the original exception code will appear here, not the code
428 //! as received by the Mach exception handler. 431 //! as received by the Mach exception handler.
429 //! * For exception types `EXC_RESOURCE` and `EXC_GUARD`, the high 32 bits of 432 //! * 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. 433 //! the code received by the Mach exception handler will appear here.
431 //! 434 //!
432 //! In all cases for Mac OS X minidumps, the code as it was received by the 435 //! 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. 436 //! Mach exception handler will appear at index 1 of #ExceptionInformation.
434 //! 437 //!
438 //! For Windows minidumps, this will either be `0` if the exception is
439 //! continuable, or `EXCEPTION_NONCONTINUABLE` to indicate a noncontinuable
440 //! exception.
441 //!
435 //! \todo Document the possible values by OS. There may be OS-specific enums 442 //! \todo Document the possible values by OS. There may be OS-specific enums
436 //! in minidump_extensions.h. 443 //! in minidump_extensions.h.
437 uint32_t ExceptionFlags; 444 uint32_t ExceptionFlags;
438 445
439 //! \brief An address, in the address space of the process that this minidump 446 //! \brief An address, in the address space of the process that this minidump
440 //! file contains a snapshot of, of another MINIDUMP_EXCEPTION. This field 447 //! file contains a snapshot of, of another MINIDUMP_EXCEPTION. This field
441 //! is used for nested exceptions. 448 //! is used for nested exceptions.
442 uint64_t ExceptionRecord; 449 uint64_t ExceptionRecord;
443 450
444 //! \brief The address that caused the exception. 451 //! \brief The address that caused the exception.
445 //! 452 //!
446 //! This may be the address that caused a fault on data access, or it may be 453 //! This may be the address that caused a fault on data access, or it may be
447 //! the instruction pointer that contained an offending instruction. 454 //! the instruction pointer that contained an offending instruction.
448 uint64_t ExceptionAddress; 455 uint64_t ExceptionAddress;
449 456
450 //! \brief The number of valid elements in #ExceptionInformation. 457 //! \brief The number of valid elements in #ExceptionInformation.
451 uint32_t NumberParameters; 458 uint32_t NumberParameters;
452 459
453 uint32_t __unusedAlignment; 460 uint32_t __unusedAlignment;
454 461
455 //! \brief Additional information about the exception, specific to the 462 //! \brief Additional information about the exception, specific to the
456 //! operating system and possibly the #ExceptionCode. 463 //! operating system and possibly the #ExceptionCode.
457 //! 464 //!
458 //! For Mac OS X minidumps, this will contain the exception type as received 465 //! For Mac OS X minidumps, this will contain the exception type as received
459 //! by a Mach exception handler and the values of the `codes[0]` and 466 //! by a Mach exception handler and the values of the `codes[0]` and
460 //! `codes[1]` (exception code and subcode) parameters supplied to the Mach 467 //! `codes[1]` (exception code and subcode) parameters supplied to the Mach
461 //! exception handler. Unlike #ExceptionCode and #ExceptionFlags, the values 468 //! exception handler. Unlike #ExceptionCode and #ExceptionFlags, the values
462 //! received by a Mach exception handler are used directly here even for the 469 //! received by a Mach exception handler are used directly here even for the
463 //! `EXC_CRASH`, `EXC_RESOURCE`, and `EXC_GUARD` exception types. 470 //! `EXC_CRASH`, `EXC_RESOURCE`, and `EXC_GUARD` exception types.
471
472 //! For Windows, these are additional arguments (if any) as provided to
473 //! `RaiseException()`.
464 uint64_t ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; 474 uint64_t ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
465 }; 475 };
466 476
467 //! \brief Information about the exception that triggered a minidump file’s 477 //! \brief Information about the exception that triggered a minidump file’s
468 //! generation. 478 //! generation.
469 struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION_STREAM { 479 struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION_STREAM {
470 //! \brief The ID of the thread that caused the exception. 480 //! \brief The ID of the thread that caused the exception.
471 //! 481 //!
472 //! \sa MINIDUMP_THREAD::ThreadId 482 //! \sa MINIDUMP_THREAD::ThreadId
473 uint32_t ThreadId; 483 uint32_t ThreadId;
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
844 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present. 854 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present.
845 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers 855 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers
846 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST 856 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST
847 //! stream. This type of minidump file also includes a 857 //! stream. This type of minidump file also includes a
848 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around 858 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around
849 //! the exception address or the instruction pointer. 859 //! the exception address or the instruction pointer.
850 MiniDumpNormal = 0x00000000, 860 MiniDumpNormal = 0x00000000,
851 }; 861 };
852 862
853 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_ 863 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_
OLDNEW
« no previous file with comments | « client/crashpad_info.cc ('k') | snapshot/exception_snapshot.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698