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 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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_ |
OLD | NEW |