Hello, We have the following problem with our backstepping debugger: suppose debuggee program is stopped for the debugger, thus there are several activation records starting from kernel exception handler ones (for single step exception for example) and ending with WaitForSingleObject from debugger on one of the debuggee's stacks (at least I'm sure about win32 stack). Now the user wants to issue backstep command from the debugger. IMHO, what we have to do is to let the debuggee work until those frames are popped back to managed code, then restore the thread state to one of the checkpoints.
The obvious solution would be to change the return address to the managed "frame" to our restore method. However stackwalk seems to walk only managed frames and doesn't know anything about native ones. How could we then get the place where the return address lives? Thank you in advance, Evgeny Vigdorchik St.Petersburg State University Institute of Information Systems