Eric Pouech : include/dbghelp.h: Update inline-related APIs and structures.

Alexandre Julliard julliard at winehq.org
Tue Oct 19 16:07:48 CDT 2021


Module: wine
Branch: master
Commit: c1f892914e89fe05d83ee84ccfafc5993ad16385
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=c1f892914e89fe05d83ee84ccfafc5993ad16385

Author: Eric Pouech <eric.pouech at gmail.com>
Date:   Tue Oct 19 15:51:06 2021 +0200

include/dbghelp.h: Update inline-related APIs and structures.

Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/dbghelp.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 51 insertions(+), 2 deletions(-)

diff --git a/include/dbghelp.h b/include/dbghelp.h
index bc8b45fe0df..4dad9cd45e9 100644
--- a/include/dbghelp.h
+++ b/include/dbghelp.h
@@ -1083,6 +1083,8 @@ BOOL WINAPI SymEnumTypes(HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID)
 BOOL WINAPI SymEnumTypesW(HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID);
 BOOL WINAPI SymFromAddr(HANDLE, DWORD64, DWORD64*, SYMBOL_INFO*);
 BOOL WINAPI SymFromAddrW(HANDLE, DWORD64, DWORD64*, SYMBOL_INFOW*);
+BOOL WINAPI SymFromInlineContext(HANDLE, DWORD64, ULONG, PDWORD64, PSYMBOL_INFO);
+BOOL WINAPI SymFromInlineContextW(HANDLE, DWORD64, ULONG, PDWORD64, PSYMBOL_INFOW);
 BOOL WINAPI SymFromToken(HANDLE, DWORD64, DWORD, PSYMBOL_INFO);
 BOOL WINAPI SymFromTokenW(HANDLE, DWORD64, DWORD, PSYMBOL_INFOW);
 BOOL WINAPI SymFromName(HANDLE, PCSTR, PSYMBOL_INFO);
@@ -1137,6 +1139,8 @@ BOOL WINAPI SymEnumSourceFiles(HANDLE, ULONG64, PCSTR, PSYM_ENUMSOURCEFILES_CALL
 BOOL WINAPI SymEnumSourceFilesW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMSOURCEFILES_CALLBACKW, PVOID);
 BOOL WINAPI SymGetLineFromAddr64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64);
 BOOL WINAPI SymGetLineFromAddrW64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINEW64);
+BOOL WINAPI SymGetLineFromInlineContext(HANDLE, DWORD64, ULONG, DWORD64, PDWORD, PIMAGEHLP_LINE64);
+BOOL WINAPI SymGetLineFromInlineContextW(HANDLE, DWORD64, ULONG, DWORD64, PDWORD, PIMAGEHLP_LINEW64);
 BOOL WINAPI SymGetLinePrev64(HANDLE, PIMAGEHLP_LINE64);
 BOOL WINAPI SymGetLinePrevW64(HANDLE, PIMAGEHLP_LINEW64);
 BOOL WINAPI SymGetLineNext64(HANDLE, PIMAGEHLP_LINE64);
@@ -1244,7 +1248,9 @@ PWSTR WINAPI SymGetHomeDirectoryW(DWORD, PWSTR, size_t);
  *   Context management  *
  *************************/
 BOOL WINAPI SymSetContext(HANDLE, PIMAGEHLP_STACK_FRAME, PIMAGEHLP_CONTEXT);
-
+BOOL WINAPI SymSetScopeFromIndex(HANDLE, ULONG64, ULONG);
+BOOL WINAPI SymSetScopeFromAddr(HANDLE, ULONG64);
+BOOL WINAPI SymSetScopeFromInlineContext(HANDLE, ULONG64, ULONG);
 
 /*************************
  *    Stack management   *
@@ -1314,6 +1320,28 @@ typedef struct _STACKFRAME64
     KDHELP64    KdHelp;
 } STACKFRAME64, *LPSTACKFRAME64;
 
+#define INLINE_FRAME_CONTEXT_INIT   0
+#define INLINE_FRAME_CONTEXT_IGNORE 0xFFFFFFFF
+
+typedef struct _tagSTACKFRAME_EX
+{
+    ADDRESS64   AddrPC;
+    ADDRESS64   AddrReturn;
+    ADDRESS64   AddrFrame;
+    ADDRESS64   AddrStack;
+    ADDRESS64   AddrBStore;
+    PVOID       FuncTableEntry;
+    DWORD64     Params[4];
+    BOOL        Far;
+    BOOL        Virtual;
+    DWORD64     Reserved[3];
+    KDHELP64    KdHelp;
+
+    DWORD       StackFrameSize;
+    DWORD       InlineFrameContext;
+} STACKFRAME_EX, *LPSTACKFRAME_EX;
+
+
 typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE64)
     (HANDLE, DWORD64, PVOID, DWORD, PDWORD);
 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE64)(HANDLE, DWORD64);
@@ -1324,12 +1352,33 @@ BOOL WINAPI 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
+BOOL WINAPI StackWalkEx(DWORD, HANDLE, HANDLE, LPSTACKFRAME_EX, PVOID,
+                        PREAD_PROCESS_MEMORY_ROUTINE64,
+                        PFUNCTION_TABLE_ACCESS_ROUTINE64,
+                        PGET_MODULE_BASE_ROUTINE64,
+                        PTRANSLATE_ADDRESS_ROUTINE64,
+                        DWORD);
 PVOID WINAPI SymFunctionTableAccess64(HANDLE, DWORD64);
 
 typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK64)(HANDLE, ULONG64, ULONG64);
 
 BOOL WINAPI SymRegisterFunctionEntryCallback64(HANDLE, PSYMBOL_FUNCENTRY_CALLBACK64, ULONG64);
+BOOL WINAPI SymGetUnwindInfo(HANDLE, DWORD64, PVOID, PULONG);
+
+/* Inline context related APIs */
+DWORD WINAPI SymAddrIncludeInlineTrace(HANDLE, DWORD64);
+
+#define SYM_INLINE_COMP_ERROR     0
+#define SYM_INLINE_COMP_IDENTICAL 1
+#define SYM_INLINE_COMP_STEPIN    2
+#define SYM_INLINE_COMP_STEPOUT   3
+#define SYM_INLINE_COMP_STEPOVER  4
+#define SYM_INLINE_COMP_DIFFERENT 5
+
+DWORD WINAPI SymCompareInlineTrace(HANDLE, DWORD64, DWORD, DWORD64, DWORD64, DWORD64);
+BOOL WINAPI SymQueryInlineTrace(HANDLE, DWORD64, DWORD, DWORD64, DWORD64, LPDWORD, LPDWORD);
 
 /*************************
  * Version, global stuff *




More information about the wine-cvs mailing list