Beispiel #1
0
        // <summary>
        //   Continue until leaving the current method.
        // </summary>
        public ThreadCommandResult Finish(bool native)
        {
            lock (this) {
                check_alive();

                if (!native)
                {
                    if (CurrentMethod == null)
                    {
                        throw new TargetException(TargetError.NoMethod);
                    }

                    StepFrame step_frame = new StepFrame(
                        null, StepMode.Finish, null,
                        CurrentMethod.StartAddress, CurrentMethod.EndAddress);

                    return(Old_Step(StepMode.Finish, step_frame));
                }
                else
                {
                    StepFrame step_frame = new StepFrame(
                        null, StepMode.FinishNative,
                        CurrentFrame.StackPointer);

                    return(Old_Step(StepMode.FinishNative, step_frame));
                }
            }
        }
Beispiel #2
0
 ThreadCommandResult Old_Step(StepMode mode, StepFrame frame)
 {
     lock (this) {
         check_alive();
         return(servant.Old_Step(mode, frame));
     }
 }
Beispiel #3
0
 public CommandResult Step(ThreadingModel model, StepMode mode, StepFrame frame)
 {
     lock (this) {
         check_alive();
         return(servant.Step(model, mode, frame));
     }
 }
Beispiel #4
0
 ThreadCommandResult Old_Step(StepMode mode, StepFrame frame)
 {
     lock (this) {
         check_alive ();
         return servant.Old_Step (mode, frame);
     }
 }
Beispiel #5
0
 public CommandResult Step(ThreadingModel model, StepMode mode, StepFrame frame)
 {
     lock (this) {
         check_alive ();
         return servant.Step (model, mode, frame);
     }
 }
Beispiel #6
0
        // <summary>
        //   Continue until leaving the current method.
        // </summary>
        public ThreadCommandResult Finish(bool native)
        {
            lock (this) {
                check_alive ();

                if (!native) {
                    if (CurrentMethod == null)
                        throw new TargetException (TargetError.NoMethod);

                    StepFrame step_frame = new StepFrame (
                        null, StepMode.Finish, null,
                        CurrentMethod.StartAddress, CurrentMethod.EndAddress);

                    return Old_Step (StepMode.Finish, step_frame);
                } else {
                    StepFrame step_frame = new StepFrame (
                        null, StepMode.FinishNative,
                        CurrentFrame.StackPointer);

                    return Old_Step (StepMode.FinishNative, step_frame);
                }
            }
        }