Commit 9a28dbfb authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

dbghelp: Check that dwarf unwinder did actually unwind.

parent 80a9c0ef
...@@ -611,7 +611,8 @@ static BOOL fetch_next_frame(struct cpu_stack_walk *csw, union ctx *pcontext, ...@@ -611,7 +611,8 @@ static BOOL fetch_next_frame(struct cpu_stack_walk *csw, union ctx *pcontext,
DWORD64 cfa; DWORD64 cfa;
RUNTIME_FUNCTION* rtf; RUNTIME_FUNCTION* rtf;
DWORD64 base; DWORD64 base;
CONTEXT *context = &pcontext->ctx; CONTEXT *context = &pcontext->ctx;
DWORD64 input_Rip = context->Rip;
if (!curr_pc || !(base = sw_module_base(csw, curr_pc))) return FALSE; if (!curr_pc || !(base = sw_module_base(csw, curr_pc))) return FALSE;
rtf = sw_table_access(csw, curr_pc); rtf = sw_table_access(csw, curr_pc);
...@@ -620,7 +621,7 @@ static BOOL fetch_next_frame(struct cpu_stack_walk *csw, union ctx *pcontext, ...@@ -620,7 +621,7 @@ static BOOL fetch_next_frame(struct cpu_stack_walk *csw, union ctx *pcontext,
{ {
return interpret_function_table_entry(csw, context, rtf, base); return interpret_function_table_entry(csw, context, rtf, base);
} }
else if (dwarf2_virtual_unwind(csw, curr_pc, pcontext, &cfa)) else if (dwarf2_virtual_unwind(csw, curr_pc, pcontext, &cfa) && input_Rip != context->Rip)
{ {
context->Rsp = cfa; context->Rsp = cfa;
TRACE("next function rip=%016Ix\n", context->Rip); TRACE("next function rip=%016Ix\n", context->Rip);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment