[PATCH 4/5] - native dbghelp can modify the passed debug context in StackWalk, so

Eric Pouech eric.pouech at wanadoo.fr
Sun Aug 13 13:46:54 CDT 2006


guard against it

A+
---

 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, 



More information about the wine-patches mailing list