Robert Baruch wrote:
I got around the problem of gdb unprotecting the write protected page by not setting the breakpoint until after the write fault occurs.
When I stepped through the Shrinker exception handler, I got to the point where it calls ReadProcessMemory with a handle of -1 to get the 8 bytes around the EXC_CallHandler's call. ReadProcessMemory fails with an ACCESS_DENIED, and trips a landmine.
that's normal... wineserver tries to read memory from process -1 (aka the caller) and needs to attach to this process, which is currently attached by gdb... hence the issue
did you try to add in scheduler/process.c for ReadProcessMemory something like: if (handle == (HANDLE)0xFFFFFFFF) { memcpy(buffer, addr, size); if (bytes_read) *bytes_read = size; return TRUE; }
HTH A+