Chromium Code Reviews| 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 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 130 //! | 130 //! |
| 131 //! \note This field is interpreted as a byte count, not a count of UTF-16 | 131 //! \note This field is interpreted as a byte count, not a count of UTF-16 |
| 132 //! code units or Unicode code points. | 132 //! code units or Unicode code points. |
| 133 uint32_t Length; | 133 uint32_t Length; |
| 134 | 134 |
| 135 //! \brief The string, encoded in UTF-16, and terminated with a UTF-16 `NUL` | 135 //! \brief The string, encoded in UTF-16, and terminated with a UTF-16 `NUL` |
| 136 //! code unit (two `NUL` bytes). | 136 //! code unit (two `NUL` bytes). |
| 137 base::char16 Buffer[0]; | 137 base::char16 Buffer[0]; |
| 138 }; | 138 }; |
| 139 | 139 |
| 140 //! \brief Describes a region of memory. | |
| 141 struct __attribute__((packed, aligned(4))) MINIDUMP_MEMORY_INFO { | |
|
Mark Mentovai
2015/10/06 20:44:49
Everything in here is ordered the same as in dbghe
scottmg
2015/10/07 21:45:09
Done.
| |
| 142 //! \brief The base address of the region of pages. | |
| 143 uint64_t BaseAddress; | |
| 144 | |
| 145 //! \brief The base address of a range of pages in this region. The page is | |
| 146 //! contained within this memory region. | |
| 147 uint64_t AllocationBase; | |
| 148 | |
| 149 //! \brief The memory protection when the region was initially allocated. This | |
| 150 //! member can be one of the memory protection options (such as | |
| 151 //! `PAGE_EXECUTE`, `PAGE_NOACCESS`, etc.), along with `PAGE_GUARD` or | |
| 152 //! `PAGE_NOCACHE`, as needed. | |
| 153 uint32_t AllocationProtect; | |
| 154 | |
| 155 //! \brief To align the next field. | |
| 156 uint32_t __alignment1; | |
| 157 | |
| 158 //! \brief The size of the region beginning at the base address in which all | |
| 159 //! pages have identical attributes, in bytes. | |
| 160 uint64_t RegionSize; | |
| 161 | |
| 162 //! \brief The state of the pages in the region. This can be one of | |
| 163 //! `MEM_COMMIT`, `MEM_FREE`, or `MEM_RESERVE`. | |
| 164 uint32_t State; | |
| 165 | |
| 166 //! \brief The access protection of the pages in the region. This member is | |
| 167 //! one of the values listed for the AllocationProtect member. | |
|
Mark Mentovai
2015/10/06 20:44:49
#AllocationProtect for proper linking in the gener
scottmg
2015/10/07 21:45:09
Done.
| |
| 168 uint32_t Protect; | |
| 169 | |
| 170 //! \brief The type of pages in the region. This can be one of `MEM_IMAGE`, | |
| 171 //! `MEM_MAPPED`, or `MEM_PRIVATE`. | |
| 172 uint32_t Type; | |
| 173 | |
| 174 //! \brief To align the next MINIDUMP_MEMORY_INFO in an array. | |
| 175 uint32_t __alignment2; | |
| 176 }; | |
| 177 | |
| 140 //! \brief Minidump stream type values for MINIDUMP_DIRECTORY::StreamType. Each | 178 //! \brief Minidump stream type values for MINIDUMP_DIRECTORY::StreamType. Each |
| 141 //! stream structure has a corresponding stream type value to identify it. | 179 //! stream structure has a corresponding stream type value to identify it. |
| 142 //! | 180 //! |
| 143 //! \sa crashpad::MinidumpStreamType | 181 //! \sa crashpad::MinidumpStreamType |
| 144 enum MINIDUMP_STREAM_TYPE { | 182 enum MINIDUMP_STREAM_TYPE { |
| 145 //! \brief The stream type for MINIDUMP_THREAD_LIST. | 183 //! \brief The stream type for MINIDUMP_THREAD_LIST. |
| 146 ThreadListStream = 3, | 184 ThreadListStream = 3, |
| 147 | 185 |
| 148 //! \brief The stream type for MINIDUMP_MODULE_LIST. | 186 //! \brief The stream type for MINIDUMP_MODULE_LIST. |
| 149 ModuleListStream = 4, | 187 ModuleListStream = 4, |
| (...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 827 //! module that produced a minidump file. | 865 //! module that produced a minidump file. |
| 828 //! | 866 //! |
| 829 //! This string is UTF-16-encoded and terminated by a UTF-16 `NUL` code unit. | 867 //! This string is UTF-16-encoded and terminated by a UTF-16 `NUL` code unit. |
| 830 //! | 868 //! |
| 831 //! On Windows 8.1 (NT 6.3), this may be “dbghelp.i386,6.3.9600.16520” or | 869 //! On Windows 8.1 (NT 6.3), this may be “dbghelp.i386,6.3.9600.16520” or |
| 832 //! “dbghelp.amd64,6.3.9600.16520” depending on CPU architecture. | 870 //! “dbghelp.amd64,6.3.9600.16520” depending on CPU architecture. |
| 833 base::char16 DbgBldStr[40]; | 871 base::char16 DbgBldStr[40]; |
| 834 }; | 872 }; |
| 835 | 873 |
| 836 //! \brief The latest known version of the MINIDUMP_MISC_INFO structure. | 874 //! \brief The latest known version of the MINIDUMP_MISC_INFO structure. |
| 837 typedef MINIDUMP_MISC_INFO_4 MINIDUMP_MISC_INFO_N; | 875 typedef MINIDUMP_MISC_INFO_4 MINIDUMP_MISC_INFO_N; |
|
Mark Mentovai
2015/10/06 20:44:49
Hey, whaddya know, Windows 10 adds MINIDUMP_MISC_I
scottmg
2015/10/07 21:45:09
Ah, I hadn't. It'd be nice if they documented some
| |
| 838 | 876 |
| 839 //! \brief Minidump file type values for MINIDUMP_HEADER::Flags. These bits | 877 //! \brief Minidump file type values for MINIDUMP_HEADER::Flags. These bits |
| 840 //! describe the types of data carried within a minidump file. | 878 //! describe the types of data carried within a minidump file. |
| 841 enum MINIDUMP_TYPE { | 879 enum MINIDUMP_TYPE { |
| 842 //! \brief A minidump file without any additional data. | 880 //! \brief A minidump file without any additional data. |
| 843 //! | 881 //! |
| 844 //! This type of minidump file contains: | 882 //! This type of minidump file contains: |
| 845 //! - A MINIDUMP_SYSTEM_INFO stream. | 883 //! - A MINIDUMP_SYSTEM_INFO stream. |
| 846 //! - A MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2, MINIDUMP_MISC_INFO_3, or | 884 //! - A MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2, MINIDUMP_MISC_INFO_3, or |
| 847 //! MINIDUMP_MISC_INFO_4 stream, depending on which fields are present. | 885 //! MINIDUMP_MISC_INFO_4 stream, depending on which fields are present. |
| 848 //! - A MINIDUMP_THREAD_LIST stream. All threads are present, along with a | 886 //! - A MINIDUMP_THREAD_LIST stream. All threads are present, along with a |
| 849 //! snapshot of each thread’s stack memory sufficient to obtain backtraces. | 887 //! snapshot of each thread’s stack memory sufficient to obtain backtraces. |
| 850 //! - If the minidump file was generated as a result of an exception, a | 888 //! - If the minidump file was generated as a result of an exception, a |
| 851 //! MINIDUMP_EXCEPTION_STREAM describing the exception. | 889 //! MINIDUMP_EXCEPTION_STREAM describing the exception. |
| 852 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present. | 890 //! - A MINIDUMP_MODULE_LIST stream. All loaded modules are present. |
| 853 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers | 891 //! - Typically, a MINIDUMP_MEMORY_LIST stream containing duplicate pointers |
| 854 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST | 892 //! to the stack memory regions also referenced by the MINIDUMP_THREAD_LIST |
| 855 //! stream. This type of minidump file also includes a | 893 //! stream. This type of minidump file also includes a |
| 856 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around | 894 //! MINIDUMP_MEMORY_DESCRIPTOR containing the 256 bytes centered around |
| 857 //! the exception address or the instruction pointer. | 895 //! the exception address or the instruction pointer. |
| 858 MiniDumpNormal = 0x00000000, | 896 MiniDumpNormal = 0x00000000, |
| 859 }; | 897 }; |
| 860 | 898 |
| 861 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_ | 899 #endif // CRASHPAD_COMPAT_NON_WIN_DBGHELP_H_ |
| OLD | NEW |