Module: wine Branch: master Commit: 84650ebbb2cc69dd657b1935674011da3ddcdfed URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=84650ebbb2cc69dd657b1935...
Author: Eric Pouech eric.pouech@wanadoo.fr Date: Sun Aug 13 20:46:54 2006 +0200
winedbg: Native dbghelp can modify the passed debug context in StackWalk, so guard against it.
---
programs/winedbg/stack.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/programs/winedbg/stack.c b/programs/winedbg/stack.c index 70a7a11..dd0877e 100644 --- a/programs/winedbg/stack.c +++ b/programs/winedbg/stack.c @@ -147,6 +147,10 @@ unsigned stack_fetch_frames(void) { STACKFRAME64 sf; unsigned nf = 0; + /* as native stackwalk can modify the context passed to it, simply copy + * it to avoid any damage + */ + CONTEXT ctx = dbg_context;
HeapFree(GetProcessHeap(), 0, dbg_curr_thread->frames); dbg_curr_thread->frames = NULL; @@ -163,7 +167,7 @@ unsigned stack_fetch_frames(void) }
while (StackWalk64(IMAGE_FILE_MACHINE_I386, dbg_curr_process->handle, - dbg_curr_thread->handle, &sf, &dbg_context, stack_read_mem, + dbg_curr_thread->handle, &sf, &ctx, stack_read_mem, SymFunctionTableAccess64, SymGetModuleBase64, NULL)) { dbg_curr_thread->frames = dbg_heap_realloc(dbg_curr_thread->frames,