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

DoProcessEvent() protected method

protected DoProcessEvent ( Inferior cevent, TargetEventArgs &args ) : EventResult
cevent Inferior
args TargetEventArgs
return EventResult
            protected override EventResult DoProcessEvent(Inferior.ChildEvent cevent,
							       out TargetEventArgs args)
            {
                Report.Debug (DebugFlags.SSE,
                      "{0} stopped at {1} during outer runtime-invoke: {2}",
                      sse, inferior.CurrentFrame, cevent);

                args = null;

                if ((cevent.Type == Inferior.ChildEventType.CHILD_STOPPED) &&
                (cevent.Argument == 0)) {
                if (Debug && (inferior.CurrentFrame == helper.InvokeMethod)) {
                    if (NestedBreakStates)
                        return EventResult.SuspendOperation;
                    else
                        return EventResult.Completed;
                }

                goto resume_target;
                } else if (cevent.Type == Inferior.ChildEventType.CHILD_HIT_BREAKPOINT) {
                if (NestedBreakStates)
                    return EventResult.SuspendOperation;
                if (Debug)
                    return EventResult.Completed;

                goto resume_target;
                }

                Report.Debug (DebugFlags.SSE,
                      "{0} stopped abnormally at {1} during outer runtime-invoke: {2}",
                      sse, inferior.CurrentFrame, cevent);
                return EventResult.Completed;

                resume_target:
                Report.Debug (DebugFlags.SSE,
                      "{0} resuming target during runtime-invoke", sse);

                sse.do_continue ();
                return EventResult.Running;
            }