From: Eric Pouech epouech@codeweavers.com
Signed-off-by: Eric Pouech epouech@codeweavers.com --- include/cvconst.h | 7 ++++ include/dbghelp.h | 89 +++++++++++++++++++++++++++++++++++------------ 2 files changed, 73 insertions(+), 23 deletions(-)
diff --git a/include/cvconst.h b/include/cvconst.h index 9536ee8202d..26bc90c5838 100644 --- a/include/cvconst.h +++ b/include/cvconst.h @@ -67,6 +67,7 @@ enum SymTagEnum SymTagHeapAllocationSite, SymTagCoffGroup, SymTagInlinee, + SymTagTaggedUnionCase, SymTagMax };
@@ -759,6 +760,12 @@ typedef enum CV_CFL_LANG CV_CFL_JSCRIPT, CV_CFL_MSIL, CV_CFL_HLSL, + CV_CFL_OBJC, + CV_CFL_OBJCXX, + CV_CFL_SWIFT, + CV_CFL_ALIASOBJ, + CV_CFL_RUST, + CV_CFL_GO, } CV_CFL_LANG;
typedef enum CV_CPU_TYPE_e diff --git a/include/dbghelp.h b/include/dbghelp.h index 919efb27be0..e46f82446e1 100644 --- a/include/dbghelp.h +++ b/include/dbghelp.h @@ -59,6 +59,10 @@ typedef struct _LOADED_IMAGE ULONG SizeOfImage; } LOADED_IMAGE, *PLOADED_IMAGE;
+#define ERROR_IMAGE_NOT_STRIPPED 0x8800 +#define ERROR_NO_DBG_POINTER 0x8801 +#define ERROR_NO_PDB_POINTER 0x8802 + /************************* * IMAGEHLP equiv * *************************/ @@ -328,6 +332,12 @@ typedef struct _SOURCEFILEW #define CBA_DEBUG_INFO 0x10000000 #define CBA_SRCSRV_INFO 0x20000000 #define CBA_SRCSRV_EVENT 0x40000000 +#define CBA_UPDATE_STATUS_BAR 0x50000000 +#define CBA_ENGINE_PRESENT 0x60000000 +#define CBA_CHECK_ENGOPT_DISALLOW_NETWORK_PATHS 0x70000000 +#define CBA_CHECK_ARM_MACHINE_THUMB_TYPE_OVERRIDE 0x80000000 +#define CBA_XML_LOG 0x90000000 +#define CBA_MAP_JIT_SYMBOL 0xA0000000
typedef struct _IMAGEHLP_CBA_READ_MEMORY { @@ -496,6 +506,7 @@ typedef struct _DBGHELP_MODLOAD_DATA
/* flags for SymLoadModuleEx */ #define SLMFLAG_VIRTUAL 0x1 +#define SLMFLAG_ALT_INDEX 0x2 #define SLMFLAG_NO_SYMBOLS 0x4
typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK64)(PCSTR, DWORD64, ULONG, PVOID); @@ -530,27 +541,32 @@ BOOL IMAGEAPI SymRefreshModuleList(HANDLE); #define IMAGEHLP_SYMBOL_INFO_CONSTANT SYMF_CONSTANT /* 0x100 */ #define IMAGEHLP_SYMBOL_FUNCTION SYMF_FUNCTION /* 0x800 */
-#define SYMFLAG_VALUEPRESENT 0x00000001 -#define SYMFLAG_REGISTER 0x00000008 -#define SYMFLAG_REGREL 0x00000010 -#define SYMFLAG_FRAMEREL 0x00000020 -#define SYMFLAG_PARAMETER 0x00000040 -#define SYMFLAG_LOCAL 0x00000080 -#define SYMFLAG_CONSTANT 0x00000100 -#define SYMFLAG_EXPORT 0x00000200 -#define SYMFLAG_FORWARDER 0x00000400 -#define SYMFLAG_FUNCTION 0x00000800 -#define SYMFLAG_VIRTUAL 0x00001000 -#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 SYMFLAG_NULL 0x00080000 -#define SYMFLAG_FUNC_NO_RETURN 0x00100000 +#define SYMFLAG_VALUEPRESENT 0x00000001 +#define SYMFLAG_REGISTER 0x00000008 +#define SYMFLAG_REGREL 0x00000010 +#define SYMFLAG_FRAMEREL 0x00000020 +#define SYMFLAG_PARAMETER 0x00000040 +#define SYMFLAG_LOCAL 0x00000080 +#define SYMFLAG_CONSTANT 0x00000100 +#define SYMFLAG_EXPORT 0x00000200 +#define SYMFLAG_FORWARDER 0x00000400 +#define SYMFLAG_FUNCTION 0x00000800 +#define SYMFLAG_VIRTUAL 0x00001000 +#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 SYMFLAG_NULL 0x00080000 +#define SYMFLAG_FUNC_NO_RETURN 0x00100000 #define SYMFLAG_SYNTHETIC_ZEROBASE 0x00200000 -#define SYMFLAG_PUBLIC_CODE 0x00400000 +#define SYMFLAG_PUBLIC_CODE 0x00400000 +#define SYMFLAG_REGREL_ALIASINDIR 0x00800000 +#define SYMFLAG_FIXUP_ARM64X 0x01000000 +#define SYMFLAG_GLOBAL 0x02000000 + +#define SYMFLAG_RESET 0x80000000
#define MAX_SYM_NAME 2000
@@ -724,6 +740,7 @@ typedef struct _TI_FINDCHILDREN_PARAMS #define SYMSEARCH_MASKOBJS 0x01 #define SYMSEARCH_RECURSE 0x02 #define SYMSEARCH_GLOBALSONLY 0x04 +#define SYMSEARCH_ALLITEMS 0X08
BOOL IMAGEAPI SymGetTypeInfo(HANDLE, DWORD64, ULONG, IMAGEHLP_SYMBOL_TYPE_INFO, PVOID); BOOL IMAGEAPI SymGetTypeInfoEx(HANDLE, DWORD64, PIMAGEHLP_GET_TYPE_INFO_PARAMS); @@ -752,6 +769,8 @@ BOOL IMAGEAPI SymGetSymPrevW64(HANDLE, PIMAGEHLP_SYMBOLW64); BOOL IMAGEAPI SymEnumSym(HANDLE,ULONG64,PSYM_ENUMERATESYMBOLS_CALLBACK,PVOID); BOOL IMAGEAPI SymEnumSymbols(HANDLE, ULONG64, PCSTR, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID); BOOL IMAGEAPI SymEnumSymbolsW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID); +BOOL IMAGEAPI SymEnumSymbolsEx(HANDLE, ULONG64, PCSTR, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID, DWORD); +BOOL IMAGEAPI SymEnumSymbolsExW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID, DWORD); typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64)(PCSTR, DWORD64, ULONG, PVOID); typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64W)(PCWSTR, DWORD64, ULONG, PVOID); BOOL IMAGEAPI SymEnumerateSymbols64(HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64, PVOID); @@ -792,6 +811,12 @@ BOOL IMAGEAPI SymGetOmaps(HANDLE, DWORD64, POMAP*, PDWORD64, POMAP*, PDWORD64); typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACK)(PSOURCEFILE, PVOID); typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACKW)(PSOURCEFILEW, PVOID);
+#define ESLFLAG_FULLPATH 0x00000001 +#define ESLFLAG_NEAREST 0x00000002 +#define ESLFLAG_PREV 0x00000004 +#define ESLFLAG_NEXT 0x00000008 +#define ESLFLAG_INLINE_SITE 0x00000010 + BOOL IMAGEAPI SymEnumSourceFiles(HANDLE, ULONG64, PCSTR, PSYM_ENUMSOURCEFILES_CALLBACK, PVOID); BOOL IMAGEAPI SymEnumSourceFilesW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMSOURCEFILES_CALLBACKW, PVOID); BOOL IMAGEAPI SymGetLineFromAddr64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64); @@ -922,6 +947,11 @@ typedef struct _KDHELP DWORD KiCallUserMode; DWORD KeUserCallbackDispatcher; DWORD SystemRangeStart; + DWORD ThCallbackBStore; + DWORD KiUserExceptionDispatcher; + DWORD StackBase; + DWORD StackLimit; + DWORD Reserved[5]; } KDHELP, *PKDHELP; #endif
@@ -935,7 +965,15 @@ typedef struct _KDHELP64 DWORD64 KiCallUserMode; DWORD64 KeUserCallbackDispatcher; DWORD64 SystemRangeStart; - DWORD64 Reserved[8]; + DWORD64 KiUserExceptionDispatcher; + DWORD64 StackBase; + DWORD64 StackLimit; + DWORD BuildVersion; + DWORD RetpolineStubFunctionTableSize; + DWORD64 RetpolineStubFunctionTable; + DWORD RetpolineStubOffset; + DWORD RetpolineStubSize; + DWORD64 Reserved[2]; } KDHELP64, *PKDHELP64;
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64) @@ -1005,8 +1043,10 @@ BOOL IMAGEAPI StackWalk64(DWORD, HANDLE, HANDLE, LPSTACKFRAME64, PVOID, PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64, PTRANSLATE_ADDRESS_ROUTINE64); -#define SYM_STKWALK_DEFAULT 0x00000000 -#define SYM_STKWALK_FORCE_FRAMEPTR 0x00000001 +#define SYM_STKWALK_DEFAULT 0x00000000 +#define SYM_STKWALK_FORCE_FRAMEPTR 0x00000001 +#define SYM_STKWALK_ZEROEXTEND_PTRS 0x00000002 + BOOL IMAGEAPI StackWalkEx(DWORD, HANDLE, HANDLE, LPSTACKFRAME_EX, PVOID, PREAD_PROCESS_MEMORY_ROUTINE64, PFUNCTION_TABLE_ACCESS_ROUTINE64, @@ -1093,6 +1133,9 @@ BOOL IMAGEAPI UnmapDebugInformation(PIMAGE_DEBUG_INFORMATION); typedef enum { SYMOPT_EX_DISABLEACCESSTIMEUPDATE, + SYMOPT_EX_LASTVALIDDEBUGDIRECTORY, + SYMOPT_EX_NOIMPLICITPATTERNSEARCH, + SYMOPT_EX_NEVERLOADSYMBOLS, SYMOPT_EX_MAX,
#ifdef __WINESRC__