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