pCF->GetRegisterSet()->pPC points to the place where the "return address" lives during 
the stackwalk callback. Try setting *pCF->GetRegisterSet()->pPC to point to your 
restore method in the first stackwalk callback.
 
-Jan
 
________________________________

Od:      Evgeny Vigdorchik [mailto:[EMAIL PROTECTED]]       
Odesláno:      čt 19.12.2002 11:26      
Komu:    [EMAIL PROTECTED]       
Předmět:     [DOTNET-ROTOR] method return address       
        

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

Reply via email to