From ed5d8dda9dcc10394005d68f5cff7d577d28e926 Mon Sep 17 00:00:00 2001 From: Peter Oberndorfer Date: Sat, 29 Sep 2007 09:58:12 +0200 Subject: [PATCH] dbghelp: improve headers --- include/dbghelp.h | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 129 insertions(+), 3 deletions(-) diff --git a/include/dbghelp.h b/include/dbghelp.h index 17097789ff0..890be70c9f6 100644 --- a/include/dbghelp.h +++ b/include/dbghelp.h @@ -603,6 +603,7 @@ typedef struct _MINIDUMP_EXCEPTION_INFORMATION BOOL ClientPointers; } MINIDUMP_EXCEPTION_INFORMATION, *PMINIDUMP_EXCEPTION_INFORMATION; +/* ExceptionStream */ typedef struct MINIDUMP_EXCEPTION_STREAM { ULONG ThreadId; @@ -632,15 +633,19 @@ typedef struct _MINIDUMP_MEMORY_DESCRIPTOR MINIDUMP_LOCATION_DESCRIPTOR Memory; } MINIDUMP_MEMORY_DESCRIPTOR, *PMINIDUMP_MEMORY_DESCRIPTOR; + +/* MemoryListStream */ typedef struct _MINIDUMP_MEMORY_LIST { ULONG NumberOfMemoryRanges; MINIDUMP_MEMORY_DESCRIPTOR MemoryRanges[1]; /* FIXME: 0-sized array not supported */ } MINIDUMP_MEMORY_LIST, *PMINIDUMP_MEMORY_LIST; -#define MINIDUMP_MISC1_PROCESS_ID 0x00000001 -#define MINIDUMP_MISC1_PROCESS_TIMES 0x00000002 +#define MINIDUMP_MISC1_PROCESS_ID 0x00000001 +#define MINIDUMP_MISC1_PROCESS_TIMES 0x00000002 +#define MINIDUMP_MISC1_PROCESSOR_POWER_INFO 0x00000004 +/* MiscInfoStream */ typedef struct _MINIDUMP_MISC_INFO { ULONG SizeOfInfo; @@ -651,6 +656,21 @@ typedef struct _MINIDUMP_MISC_INFO ULONG ProcessKernelTime; } MINIDUMP_MISC_INFO, *PMINIDUMP_MISC_INFO; +typedef struct _MINIDUMP_MISC_INFO_2 +{ + ULONG SizeOfInfo; + ULONG Flags1; + ULONG ProcessId; + ULONG ProcessCreateTime; + ULONG ProcessUserTime; + ULONG ProcessKernelTime; + ULONG ProcessorMaxMhz; + ULONG ProcessorCurrentMhz; + ULONG ProcessorMhzLimit; + ULONG ProcessorMaxIdleState; + ULONG ProcessorCurrentIdleState; +} MINIDUMP_MISC_INFO_2, *PMINIDUMP_MISC_INFO_2; + typedef struct _MINIDUMP_MODULE { ULONG64 BaseOfImage; @@ -665,6 +685,7 @@ typedef struct _MINIDUMP_MODULE ULONG64 Reserved1; } MINIDUMP_MODULE, *PMINIDUMP_MODULE; +/* ModuleListStream */ typedef struct _MINIDUMP_MODULE_LIST { ULONG NumberOfModules; @@ -677,6 +698,7 @@ typedef struct _MINIDUMP_STRING WCHAR Buffer[1]; /* FIXME: O-sized array not supported */ } MINIDUMP_STRING, *PMINIDUMP_STRING; +/* SystemInfoStream */ typedef struct _MINIDUMP_SYSTEM_INFO { USHORT ProcessorArchitecture; @@ -735,6 +757,7 @@ typedef struct _MINIDUMP_THREAD MINIDUMP_LOCATION_DESCRIPTOR ThreadContext; } MINIDUMP_THREAD, *PMINIDUMP_THREAD; +/* ThreadListStream */ typedef struct _MINIDUMP_THREAD_LIST { ULONG NumberOfThreads; @@ -754,6 +777,105 @@ typedef struct _MINIDUMP_USER_STREAM_INFORMATION PMINIDUMP_USER_STREAM UserStreamArray; } MINIDUMP_USER_STREAM_INFORMATION, *PMINIDUMP_USER_STREAM_INFORMATION; + + +typedef struct _MINIDUMP_UNLOADED_MODULE +{ + ULONG64 BaseOfImage; + ULONG32 SizeOfImage; + ULONG32 CheckSum; + ULONG32 TimeDateStamp; + RVA ModuleNameRva; +} MINIDUMP_UNLOADED_MODULE, *PMINIDUMP_UNLOADED_MODULE; + + +/* UnloadedModuleListStream */ +typedef struct _MINIDUMP_UNLOADED_MODULE_LIST +{ + ULONG SizeOfHeader; + ULONG SizeOfEntry; + ULONG64 NumberOfEntries; +} MINIDUMP_UNLOADED_MODULE_LIST, *PMINIDUMP_UNLOADED_MODULE_LIST; + + + +typedef struct _MINIDUMP_THREAD_INFO +{ + ULONG32 ThreadId; + ULONG32 DumpFlags; + ULONG32 DumpError; + ULONG32 ExitStatus; + ULONG64 CreateTime; + ULONG64 ExitTime; + ULONG64 KernelTime; + ULONG64 UserTime; + ULONG64 StartAddress; + ULONG64 Affinity; +} MINIDUMP_THREAD_INFO, *PMINIDUMP_THREAD_INFO; + +/* DumpFlags of MINIDUMP_THREAD_INFO */ +#define MINIDUMP_THREAD_INFO_ERROR_THREAD 0x00000001 +#define MINIDUMP_THREAD_INFO_WRITING_THREAD 0x00000002 +#define MINIDUMP_THREAD_INFO_EXITED_THREAD 0x00000004 +#define MINIDUMP_THREAD_INFO_INVALID_INFO 0x00000008 +#define MINIDUMP_THREAD_INFO_INVALID_CONTEXT 0x00000010 +#define MINIDUMP_THREAD_INFO_INVALID_TEB 0x00000020 + +/* ThreadInfoListStream */ +typedef struct _MINIDUMP_THREAD_INFO_LIST +{ + ULONG SizeOfHeader; + ULONG SizeOfEntry; + ULONG64 NumberOfEntries; +} MINIDUMP_THREAD_INFO_LIST, *PMINIDUMP_THREAD_INFO_LIST; + + + + +typedef struct _MINIDUMP_MEMORY_INFO +{ + ULONG64 BaseAddress; + ULONG64 AllocationBase; + ULONG32 AllocationProtect; + ULONG32 dummy1;//__alignment1 + ULONG64 RegionSize; + ULONG32 State; + ULONG32 Protect; + ULONG32 Type; + ULONG32 dummy2;//__alignment2 +} MINIDUMP_MEMORY_INFO, *PMINIDUMP_MEMORY_INFO; + +/* MemoryInfoListStream */ +typedef struct _MINIDUMP_MEMORY_INFO_LIST +{ + ULONG SizeOfHeader; + ULONG SizeOfEntry; + ULONG64 NumberOfEntries; +} MINIDUMP_MEMORY_INFO_LIST, *PMINIDUMP_MEMORY_INFO_LIST; + +/* FunctionTableStream */ +typedef struct _MINIDUMP_FUNCTION_TABLE_STREAM +{ + ULONG32 SizeOfHeader; + ULONG32 SizeOfDescriptor; + ULONG32 SizeOfNativeDescriptor; + ULONG32 SizeOfFunctionEntry; + ULONG32 NumberOfDescriptors; + ULONG32 SizeOfAlignPad; +} MINIDUMP_FUNCTION_TABLE_STREAM, *PMINIDUMP_FUNCTION_TABLE_STREAM; + + + +/* HandleOperationListStream */ +typedef struct _MINIDUMP_HANDLE_OPERATION_LIST +{ + ULONG SizeOfHeader; + ULONG SizeOfEntry; + ULONG64 NumberOfEntries; + ULONG32 Reserved; +} MINIDUMP_HANDLE_OPERATION_LIST, *PMINIDUMP_HANDLE_OPERATION_LIST; + + typedef enum _MINIDUMP_STREAM_TYPE { UnusedStream = 0, @@ -768,12 +890,13 @@ typedef enum _MINIDUMP_STREAM_TYPE Memory64ListStream = 9, CommentStreamA = 10, CommentStreamW = 11, - HandleDataStream = 12, + HandleDataStream = 12,//Add struct FunctionTableStream = 13, UnloadedModuleListStream = 14, MiscInfoStream = 15, MemoryInfoListStream = 16, ThreadInfoListStream = 17, + HandleOperationListStream = 18, LastReservedStream = 0xffff } MINIDUMP_STREAM_TYPE; @@ -849,6 +972,9 @@ BOOL WINAPI SymUnloadModule64(HANDLE, DWORD64); #define SYMFLAG_THUNK 0x00002000 #define SYMFLAG_TLSREL 0x00004000 #define SYMFLAG_SLOT 0x00008000 +#define SYMFLAG_ILREL 0x00010000 +#define SYMFLAG_METADATA 0x00020000 +#define SYMFLAG_CLR_TOKEN 0x00040000 #define MAX_SYM_NAME 2000 -- 2.11.4.GIT