Hi,
Winedbg's watchpoints don't seem to work for me: when I try to watch a memory location, winedbg responds that a watchpoint has been set at a different, always constant location (I suspect this is actually in winedbg's memory space). Nothing happens when the location I was trying to watch changes.
Here is a cut-and-paste from my winedbg session. I try to watch memory location 0x0041a5ec, but I can set other breakpoints and see that the value has changed without the watchpoint taking effect.
----------------------------------------------------------------------- Wine-dbg>run In 32 bit mode. 0x4049a81f start_process+0xcf [/home/reuben/project/wine/wine/dlls/kernel/../../include/winternl.h:1249] in kernel32: jmp 0x4049a815 start_process+0xc5 [/home/reuben/project/wine/wine/dlls/kernel/process.c:1022] in kernel32 1249 static inline void WINAPI DbgBreakPoint(void) { __asm__ __volatile__("int3"); } 1249 static inline void WINAPI DbgBreakPoint(void) { __asm__ __volatile__("int3"); } Wine-dbg>watch *0x0041a5ec Watchpoint 1 at 0x405ae8c4 Wine-dbg>x 0x0041a5ec 00000000 Wine-dbg>break *0x004130ec Breakpoint 2 at 0x004130ec Wine-dbg>cont fixme:ole:CoRegisterMessageFilter stub Stopped on breakpoint 2 at 0x004130ec Wine-dbg>x 0x0041a5ec 403e9d40 Wine-dbg>cond 2 $ecx==0x10 Wine-dbg>cont Stopped on breakpoint 2 at 0x004130ec Wine-dbg>x 0x0041a5ec 00000000 Wine-dbg>info break Breakpoints: 2: y 0x004130ec (1) stop when ($ecx == 16) Watchpoints: 1: y 0x405ae8c4 on 4 bytes (W) --------------------------------------------------------------------------
The fact that winedbg thinks the watchpoint is 0x405ae8c4 is especially puzzling, but it's entirely possible that the confusion lies with me rather than winedbg.
Thanks, Walter