winedbg: Native dbghelp can modify the passed debug context in StackWalk, so guard against it.
This commit is contained in:
parent
588589b8de
commit
84650ebbb2
programs/winedbg
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue