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

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

Issue 1379873005: win: Write memory map info as MINIDUMP_MEMORY_INFO[_LIST] (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@save-peb-more-2
Patch Set: headers 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 | compat/non_win/winnt.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 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 //! \brief The stream type for MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2, 160 //! \brief The stream type for MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2,
161 //! MINIDUMP_MISC_INFO_3, and MINIDUMP_MISC_INFO_4. 161 //! MINIDUMP_MISC_INFO_3, and MINIDUMP_MISC_INFO_4.
162 //! 162 //!
163 //! More recent versions of this stream are supersets of earlier versions. 163 //! More recent versions of this stream are supersets of earlier versions.
164 //! 164 //!
165 //! The exact version of the stream that is present is implied by the stream’s 165 //! The exact version of the stream that is present is implied by the stream’s
166 //! size. Furthermore, this stream contains a field, 166 //! size. Furthermore, this stream contains a field,
167 //! MINIDUMP_MISC_INFO::Flags1, that indicates which data is present and 167 //! MINIDUMP_MISC_INFO::Flags1, that indicates which data is present and
168 //! valid. 168 //! valid.
169 MiscInfoStream = 15, 169 MiscInfoStream = 15,
170
171 //! \brief The stream type for MINIDUMP_MEMORY_INFO_LIST.
172 MemoryInfoListStream = 16,
170 }; 173 };
171 174
172 //! \brief Information about the CPU (or CPUs) that ran the process that the 175 //! \brief Information about the CPU (or CPUs) that ran the process that the
173 //! minidump file contains a snapshot of. 176 //! minidump file contains a snapshot of.
174 //! 177 //!
175 //! This union only appears as MINIDUMP_SYSTEM_INFO::Cpu. Its interpretation is 178 //! This union only appears as MINIDUMP_SYSTEM_INFO::Cpu. Its interpretation is
176 //! controlled by MINIDUMP_SYSTEM_INFO::ProcessorArchitecture. 179 //! controlled by MINIDUMP_SYSTEM_INFO::ProcessorArchitecture.
177 union __attribute__((packed, aligned(4))) CPU_INFORMATION { 180 union __attribute__((packed, aligned(4))) CPU_INFORMATION {
178 //! \brief Information about 32-bit x86 CPUs, or x86_64 CPUs when running 181 //! \brief Information about 32-bit x86 CPUs, or x86_64 CPUs when running
179 //! 32-bit x86 processes. 182 //! 32-bit x86 processes.
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 struct __attribute__((packed, aligned(4))) MINIDUMP_MEMORY_INFO { 843 struct __attribute__((packed, aligned(4))) MINIDUMP_MEMORY_INFO {
841 //! \brief The base address of the region of pages. 844 //! \brief The base address of the region of pages.
842 uint64_t BaseAddress; 845 uint64_t BaseAddress;
843 846
844 //! \brief The base address of a range of pages in this region. The page is 847 //! \brief The base address of a range of pages in this region. The page is
845 //! contained within this memory region. 848 //! contained within this memory region.
846 uint64_t AllocationBase; 849 uint64_t AllocationBase;
847 850
848 //! \brief The memory protection when the region was initially allocated. This 851 //! \brief The memory protection when the region was initially allocated. This
849 //! member can be one of the memory protection options (such as 852 //! member can be one of the memory protection options (such as
850 //! `PAGE_EXECUTE`, `PAGE_NOACCESS`, etc.), along with `PAGE_GUARD` or 853 //! \ref PAGE_x PAGE_EXECUTE, \ref PAGE_x PAGE_NOACCESS, etc.), along with
851 //! `PAGE_NOCACHE`, as needed. 854 //! \ref PAGE_x PAGE_GUARD or \ref PAGE_x PAGE_NOCACHE, as needed.
852 uint32_t AllocationProtect; 855 uint32_t AllocationProtect;
853 856
854 uint32_t __alignment1; 857 uint32_t __alignment1;
855 858
856 //! \brief The size of the region beginning at the base address in which all 859 //! \brief The size of the region beginning at the base address in which all
857 //! pages have identical attributes, in bytes. 860 //! pages have identical attributes, in bytes.
858 uint64_t RegionSize; 861 uint64_t RegionSize;
859 862
860 //! \brief The state of the pages in the region. This can be one of 863 //! \brief The state of the pages in the region. This can be one of
861 //! `MEM_COMMIT`, `MEM_FREE`, or `MEM_RESERVE`. 864 //! \ref MEM_x MEM_COMMIT, \ref MEM_x MEM_FREE, or \ref MEM_x MEM_RESERVE.
862 uint32_t State; 865 uint32_t State;
863 866
864 //! \brief The access protection of the pages in the region. This member is 867 //! \brief The access protection of the pages in the region. This member is
865 //! one of the values listed for the #AllocationProtect member. 868 //! one of the values listed for the #AllocationProtect member.
866 uint32_t Protect; 869 uint32_t Protect;
867 870
868 //! \brief The type of pages in the region. This can be one of `MEM_IMAGE`, 871 //! \brief The type of pages in the region. This can be one of \ref MEM_x
869 //! `MEM_MAPPED`, or `MEM_PRIVATE`. 872 //! MEM_IMAGE, \ref MEM_x MEM_MAPPED, or \ref MEM_x MEM_PRIVATE.
870 uint32_t Type; 873 uint32_t Type;
871 874
872 uint32_t __alignment2; 875 uint32_t __alignment2;
873 }; 876 };
874 877
878 //! \brief Contains a list of memory regions.
879 struct __attribute__((packed, aligned(4))) MINIDUMP_MEMORY_INFO_LIST {
880 //! \brief The size of the header data for the stream, in bytes. This is
881 //! generally sizeof(MINIDUMP_MEMORY_INFO_LIST).
882 uint32_t SizeOfHeader;
883
884 //! \brief The size of each entry following the header, in bytes. This is
885 //! generally sizeof(MINIDUMP_MEMORY_INFO).
886 uint32_t SizeOfEntry;
887
888 //! \brief The number of entries in the stream. These are generally
889 //! MINIDUMP_MEMORY_INFO structures. The entries follow the header.
890 uint64_t NumberOfEntries;
891 };
892
875 //! \brief Minidump file type values for MINIDUMP_HEADER::Flags. These bits 893 //! \brief Minidump file type values for MINIDUMP_HEADER::Flags. These bits
876 //! describe the types of data carried within a minidump file. 894 //! describe the types of data carried within a minidump file.
877 enum MINIDUMP_TYPE { 895 enum MINIDUMP_TYPE {
878 //! \brief A minidump file without any additional data. 896 //! \brief A minidump file without any additional data.
879 //! 897 //!
880 //! This type of minidump file contains: 898 //! This type of minidump file contains:
881 //! - A MINIDUMP_SYSTEM_INFO stream. 899 //! - A MINIDUMP_SYSTEM_INFO stream.
882 //! - A MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2, MINIDUMP_MISC_INFO_3, or 900 //! - A MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2, MINIDUMP_MISC_INFO_3, or
883 //! MINIDUMP_MISC_INFO_4 stream, depending on which fields are present. 901 //! MINIDUMP_MISC_INFO_4 stream, depending on which fields are present.
884 //! - A MINIDUMP_THREAD_LIST stream. All threads are present, along with a 902 //! - A MINIDUMP_THREAD_LIST stream. All threads are present, along with a
885 //! snapshot of each thread’s stack memory sufficient to obtain backtraces. 903 //! snapshot of each thread’s stack memory sufficient to obtain backtraces.
886 //! - If the minidump file was generated as a result of an exception, a 904 //! - If the minidump file was generated as a result of an exception, a
887 //! MINIDUMP_EXCEPTION_STREAM describing the exception. 905 //! MINIDUMP_EXCEPTION_STREAM describing the exception.
888 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present. 906 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present.
889 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers 907 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers
890 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST 908 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST
891 //! stream. This type of minidump file also includes a 909 //! stream. This type of minidump file also includes a
892 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around 910 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around
893 //! the exception address or the instruction pointer. 911 //! the exception address or the instruction pointer.
894 MiniDumpNormal = 0x00000000, 912 MiniDumpNormal = 0x00000000,
895 }; 913 };
896 914
897 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_ 915 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_
OLDNEW
« no previous file with comments | « no previous file | compat/non_win/winnt.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698