Eric Pouech : dbghelp: Implement SymSetScopeFromInlineContext for inlined frames.

Alexandre Julliard julliard at winehq.org
Thu Oct 28 16:07:45 CDT 2021


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

Author: Eric Pouech <eric.pouech at gmail.com>
Date:   Thu Oct 28 08:58:44 2021 +0200

dbghelp: Implement SymSetScopeFromInlineContext for inlined frames.

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

---

 dlls/dbghelp/dbghelp.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/dlls/dbghelp/dbghelp.c b/dlls/dbghelp/dbghelp.c
index 0b1e20e93c0..844ef00b8e9 100644
--- a/dlls/dbghelp/dbghelp.c
+++ b/dlls/dbghelp/dbghelp.c
@@ -677,6 +677,9 @@ BOOL WINAPI SymSetScopeFromIndex(HANDLE hProcess, ULONG64 addr, DWORD index)
  */
 BOOL WINAPI SymSetScopeFromInlineContext(HANDLE hProcess, ULONG64 addr, DWORD inlinectx)
 {
+    struct module_pair pair;
+    struct symt_inlinesite* inlined;
+
     TRACE("(%p %I64x %x)\n", hProcess, addr, inlinectx);
 
     switch (IFC_MODE(inlinectx))
@@ -684,6 +687,15 @@ BOOL WINAPI SymSetScopeFromInlineContext(HANDLE hProcess, ULONG64 addr, DWORD in
     case IFC_MODE_IGNORE:
     case IFC_MODE_REGULAR: return SymSetScopeFromAddr(hProcess, addr);
     case IFC_MODE_INLINE:
+        if (!module_init_pair(&pair, hProcess, addr)) return FALSE;
+        inlined = symt_find_inlined_site(pair.effective, addr, inlinectx);
+        if (inlined)
+        {
+            pair.pcs->localscope_pc = addr;
+            pair.pcs->localscope_symt = &inlined->func.symt;
+            return TRUE;
+        }
+        return FALSE;
     default:
         SetLastError(ERROR_INVALID_PARAMETER);
         return FALSE;




More information about the wine-cvs mailing list