Mono.Debugger.Backend.SingleSteppingEngine.OperationDelegateInvoke.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} delegate impl stopped at {1}",
                      sse, current_frame);

                if (finished)
                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;
                }

                Report.Debug (DebugFlags.SSE, "{0} delegate impl stopped at {1}: {2}",
                      sse, current_frame, instruction);

                if ((instruction.InstructionType == Instruction.Type.IndirectJump) ||
                (instruction.InstructionType == Instruction.Type.IndirectCall))
                finished = true;

                sse.do_step ();
                return false;
            }