dbghelp: Implement SymSetScopeFromInlineContext for inlined frames.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Eric Pouech 2021-10-28 08:58:44 +02:00 committed by Alexandre Julliard
parent eee701ad52
commit 232681da96
1 changed files with 12 additions and 0 deletions

View File

@ -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;