protected override bool DoProcessEvent()
{
TargetAddress current_frame = inferior.CurrentFrame;
Report.Debug (DebugFlags.SSE, "{0} wrapper stopped at {1} ({2}:{3})",
sse, current_frame, method.StartAddress, method.EndAddress);
if ((current_frame < method.StartAddress) || (current_frame > method.EndAddress))
return true;
/*
* If this is not a call instruction, continue stepping until we leave
* the current method.
*/
Instruction instruction = inferior.Architecture.ReadInstruction (
inferior, current_frame);
if ((instruction == null) || !instruction.HasInstructionSize) {
sse.do_step ();
return false;
}
if (sse.CheckTrampoline (instruction, TrampolineHandler))
return false;
sse.do_step ();
return false;
}