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

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

Issue 1407643004: Some plumbing for the beginning of getting handles into snapshot/minidump (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@handles-redux
Patch Set: . Created 5 years, 2 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 | « no previous file | snapshot/handle_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 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 //! to the exception that triggered the snapshot to be taken. 614 //! to the exception that triggered the snapshot to be taken.
615 struct __attribute__((packed, aligned(4))) MINIDUMP_MEMORY_LIST { 615 struct __attribute__((packed, aligned(4))) MINIDUMP_MEMORY_LIST {
616 //! \brief The number of memory regions present in the #MemoryRanges array. 616 //! \brief The number of memory regions present in the #MemoryRanges array.
617 uint32_t NumberOfMemoryRanges; 617 uint32_t NumberOfMemoryRanges;
618 618
619 //! \brief Structures identifying each memory region present in the minidump 619 //! \brief Structures identifying each memory region present in the minidump
620 //! file. 620 //! file.
621 MINIDUMP_MEMORY_DESCRIPTOR MemoryRanges[0]; 621 MINIDUMP_MEMORY_DESCRIPTOR MemoryRanges[0];
622 }; 622 };
623 623
624 //! \brief Contains the state of an individual system handle at the time the
625 //! snapshot was taken. This structure is Windows-specific.
626 //!
627 //! \sa MINIDUMP_HANDLE_DESCRIPTOR_2
628 struct __attribute__((packed, aligned(4))) MINIDUMP_HANDLE_DESCRIPTOR {
629 //! \brief The Windows `HANDLE` value.
630 uint64_t Handle;
631
632 //! \brief An RVA to a MINIDUMP_STRING structure that specifies the object
633 //! type of the handle. This member can be zero.
634 RVA TypeNameRva;
635
636 //! \brief An RVA to a MINIDUMP_STRING structure that specifies the object
637 //! name of the handle. This member can be zero.
638 RVA ObjectNameRva;
639
640 //! \brief The attributes for the handle, this corresponds to `OBJ_INHERIT`,
641 //! `OBJ_CASE_INSENSITIVE`, etc.
642 uint32_t Attributes;
643
644 //! \brief The `ACCESS_MASK` for the handle.
645 uint32_t GrantedAccess;
646
647 //! \brief This is the number of open handles to the object that this handle
648 //! refers to.
649 uint32_t HandleCount;
650
651 //! \brief This is the number kernel references to the object that this
652 //! handle refers to.
653 uint32_t PointerCount;
654 };
655
656 //! \brief Contains the state of an individual system handle at the time the
657 //! snapshot was taken. This structure is Windows-specific.
658 //!
659 //! \sa MINIDUMP_HANDLE_DESCRIPTOR
660 struct __attribute__((packed, aligned(4))) MINIDUMP_HANDLE_DESCRIPTOR_2
661 : public MINIDUMP_HANDLE_DESCRIPTOR {
662 //! \brief An RVA to a MINIDUMP_HANDLE_OBJECT_INFORMATION structure that
663 //! specifies object-specific information. This member can be zero if
664 //! there is no extra information.
665 RVA ObjectInfoRva;
666
667 //! \brief Must be zero.
668 uint32_t Reserved0;
669 };
670
671 //! \brief Represents the header for a handle data stream.
672 struct __attribute((packed, aligned(4))) MINIDUMP_HANDLE_DATA_STREAM {
673 //! \brief The size of the header information for the stream, in bytes. This
674 //! value is `sizeof(MINIDUMP_HANDLE_DATA_STREAM)`.
675 uint32_t SizeOfHeader;
676
677 //! \brief The size of a descriptor in the stream, in bytes. This value is
678 //! `sizeof(MINIDUMP_HANDLE_DESCRIPTOR)` or
679 //! `sizeof(MINIDUMP_HANDLE_DESCRIPTOR_2)`.
680 uint32_t SizeOfDescriptor;
681
682 //! \brief The number of descriptors in the stream.
683 uint32_t NumberOfDescriptors;
684
685 //! \brief Must be zero.
686 uint32_t Reserved;
687 };
688
624 //! \anchor MINIDUMP_MISCx 689 //! \anchor MINIDUMP_MISCx
625 //! \name MINIDUMP_MISC* 690 //! \name MINIDUMP_MISC*
626 //! 691 //!
627 //! \brief Field validity flag values for MINIDUMP_MISC_INFO::Flags1. 692 //! \brief Field validity flag values for MINIDUMP_MISC_INFO::Flags1.
628 //! \{ 693 //! \{
629 694
630 //! \brief MINIDUMP_MISC_INFO::ProcessId is valid. 695 //! \brief MINIDUMP_MISC_INFO::ProcessId is valid.
631 #define MINIDUMP_MISC1_PROCESS_ID 0x00000001 696 #define MINIDUMP_MISC1_PROCESS_ID 0x00000001
632 697
633 //! \brief The time-related fields in MINIDUMP_MISC_INFO are valid. 698 //! \brief The time-related fields in MINIDUMP_MISC_INFO are valid.
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present. 971 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present.
907 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers 972 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers
908 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST 973 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST
909 //! stream. This type of minidump file also includes a 974 //! stream. This type of minidump file also includes a
910 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around 975 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around
911 //! the exception address or the instruction pointer. 976 //! the exception address or the instruction pointer.
912 MiniDumpNormal = 0x00000000, 977 MiniDumpNormal = 0x00000000,
913 }; 978 };
914 979
915 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_ 980 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_
OLDNEW
« no previous file with comments | « no previous file | snapshot/handle_snapshot.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698