public OperationRuntimeInvokeHelper(SingleSteppingEngine sse, OperationRuntimeInvoke rti) : base(sse) { this.RTI = rti; this.instance = RTI.Instance; this.method = TargetAddress.Null; this.stage = Stage.Uninitialized; language = sse.process.MonoLanguage; }
protected override EventResult CallbackCompleted(long data1, long data2, out TargetEventArgs args) { args = null; StackFrame parent_frame = Backtrace.Frames [++level]; inferior.SetRegisters (parent_frame.Registers); Inferior.CallbackFrame cframe = inferior.GetCallbackFrame (parent_frame.StackPointer, true); Report.Debug (DebugFlags.SSE, "{0} return: {1} {2}\n{3}", sse, level, cframe, parent_frame); if (cframe != null) { Report.Debug (DebugFlags.SSE, "{0} return aborting rti: {1}", sse, cframe); aborted_rti = sse.AbortRuntimeInvoke (cframe.ID); return EventResult.Completed; } if (level == Backtrace.Count) { Report.Debug (DebugFlags.SSE, "{0} completed return", sse); return EventResult.Completed; } DoExecute (); return EventResult.Running; }