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;
}