Mono.Debugger.Backend.SingleSteppingEngine.OperationWrapper.DoProcessEvent C# (CSharp) Method

DoProcessEvent() protected method

protected DoProcessEvent ( ) : bool
return bool
            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;
            }