Commit 7de1284b authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

dbghelp: Stop unwinding on potential 64bit frame for i386 cpu.

Transform potential error on 32 => 64 bit transition with end of stack (needed in new wow64 for dbghelp's stackwalk tests). Signed-off-by: 's avatarEric Pouech <eric.pouech@gmail.com>
parent 00205754
...@@ -473,7 +473,14 @@ static BOOL i386_stack_walk(struct cpu_stack_walk *csw, STACKFRAME64 *frame, ...@@ -473,7 +473,14 @@ static BOOL i386_stack_walk(struct cpu_stack_walk *csw, STACKFRAME64 *frame,
union ctx newctx = *context; union ctx newctx = *context;
if (!fetch_next_frame32(csw, &newctx, frame->AddrPC.Offset - deltapc)) if (!fetch_next_frame32(csw, &newctx, frame->AddrPC.Offset - deltapc))
goto done_err; {
/* When running on wow64 setup, frame below can a 64 bit frame.
* As we don't expose 64bit frames for now, pretend it's the first frame.
*/
if (frame->AddrPC.Offset == 0)
goto done_err;
newctx.x86.Eip = 0;
}
frame->AddrReturn.Mode = AddrModeFlat; frame->AddrReturn.Mode = AddrModeFlat;
frame->AddrReturn.Offset = newctx.x86.Eip; frame->AddrReturn.Offset = newctx.x86.Eip;
......
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