示例#1
0
        internal void Step(AD7Thread thread, enum_STEPKIND sk, enum_STEPUNIT stepUnit)
        {
            DebugHelper.TraceEnteringMethod();
            if (!_isStepping)
            {
                if (currentStepRequest == null)
                {
                    currentStepRequest = _vm.CreateStepRequest(thread.ThreadMirror);
                }
                else
                {
                    currentStepRequest.Disable();
                }

                _isStepping = true;
                if (stepUnit == enum_STEPUNIT.STEP_LINE || stepUnit == enum_STEPUNIT.STEP_STATEMENT)
                {
                    switch (sk)
                    {
                    case enum_STEPKIND.STEP_INTO:
                        currentStepRequest.Depth = StepDepth.Into;
                        break;

                    case enum_STEPKIND.STEP_OUT:
                        currentStepRequest.Depth = StepDepth.Out;
                        break;

                    case enum_STEPKIND.STEP_OVER:
                        currentStepRequest.Depth = StepDepth.Over;
                        break;

                    default:
                        return;
                    }
                }
                else if (stepUnit == enum_STEPUNIT.STEP_INSTRUCTION)
                {
                    //TODO: by techcap
                }
                else
                {
                    throw new NotImplementedException();
                }

                currentStepRequest.Size = StepSize.Line;
                currentStepRequest.Enable();
            }

            ResumeVM();
        }
示例#2
0
        internal void Step(MonoThread thread, enum_STEPKIND sk)
        {
            if (isStepping)
            {
                return;
            }

            if (currentStepRequest == null)
            {
                currentStepRequest = _vm.CreateStepRequest(thread.ThreadMirror);
            }
            else
            {
                currentStepRequest.Disable();
            }

            isStepping = true;
            switch (sk)
            {
            case enum_STEPKIND.STEP_INTO:
                currentStepRequest.Depth = StepDepth.Into;
                break;

            case enum_STEPKIND.STEP_OUT:
                currentStepRequest.Depth = StepDepth.Out;
                break;

            case enum_STEPKIND.STEP_OVER:
                currentStepRequest.Depth = StepDepth.Over;
                break;

            default:
                return;
            }

            currentStepRequest.Size = StepSize.Line;
            currentStepRequest.Enable();
            _vm.Resume();
        }