예제 #1
0
 private void DebuggingService_OnEngineReady(object sender, EventArgs e)
 {
     OnAdapterMessage?.Invoke(this, "Script ready, Waiting for debugger");
     engineReadyEvent.Set();
     if (waitForLaunch)
     {
         configurationDoneEvent.WaitOne();
     }
     OnAdapterMessage?.Invoke(this, "Script continue running");
     DebugAdapterStatus = DebugAdapterStatusEnum.Ready;
 }
예제 #2
0
 private void DebuggingService_OnException(object sender, RuntimeException e)
 {
     if (!IsConnected)
     {
         debuggingService.Step(JavaScriptDiagStepType.JsDiagStepTypeContinue);
         return;
     }
     OnAdapterMessage?.Invoke(this, $"Exception occured at  {e}");
     SendEvent(new StoppedEvent(currentThread.id, "exception", e.ExceptionObject.Display));
     DebugAdapterStatus = DebugAdapterStatusEnum.ExceptionOccured;
 }
예제 #3
0
 private void DebuggingService_OnStepComplete(object sender, BreakPoint e)
 {
     if (!IsConnected)
     {
         debuggingService.Step(JavaScriptDiagStepType.JsDiagStepTypeContinue);
         return;
     }
     OnAdapterMessage?.Invoke(this, $"Step complete at {e}");
     SendEvent(new StoppedEvent(currentThread.id, "step"));
     DebugAdapterStatus = DebugAdapterStatusEnum.StepComplete;
 }
예제 #4
0
 private void DebuggingService_OnBreakPoint(object sender, BreakPoint e)
 {
     if (!IsConnected)
     {
         clearBreakpointOnScript(e.ScriptId);
         debuggingService.Step(JavaScriptDiagStepType.JsDiagStepTypeContinue);
         return;
     }
     OnAdapterMessage?.Invoke(this, $"Breakpoint hit at {e}");
     SendEvent(new StoppedEvent(currentThread.id, "breakpoint", "breakpoint hit"));
     DebugAdapterStatus = DebugAdapterStatusEnum.BreakPointHit;
 }
예제 #5
0
        public override void Disconnect(Response response, dynamic arguments)
        {
            switch (DebugAdapterStatus)
            {
            case DebugAdapterStatusEnum.BreakPointHit:
            case DebugAdapterStatusEnum.StepComplete:
            case DebugAdapterStatusEnum.AsyncBreakHit:
            case DebugAdapterStatusEnum.ExceptionOccured:
                debuggingService.Step(JavaScriptDiagStepType.JsDiagStepTypeContinue);
                DebugAdapterStatus = DebugAdapterStatusEnum.Ready;
                break;

            default:
                break;
            }
            SendOutput("Debugger disconnected, continue script execution");
            IsConnected = false;
            OnAdapterMessage?.Invoke(this, "Disconnect");
        }
예제 #6
0
        private void DebuggingService_OnAsyncBreak(object sender, BreakPoint e)
        {
            if (!IsConnected)
            {
                debuggingService.Step(JavaScriptDiagStepType.JsDiagStepTypeContinue);
                return;
            }
            OnAdapterMessage?.Invoke(this, $"Async break at  {e}");
            if (postAsyncBreakAction != null)//event is triggered by Attach command
            {
                postAsyncBreakAction();
                postAsyncBreakAction = null;
            }
            else
            {
                SendEvent(new StoppedEvent(currentThread.id, "async break"));
            }

            DebugAdapterStatus = DebugAdapterStatusEnum.AsyncBreakHit;
        }
예제 #7
0
 public OnStatusChangArguments(DebugAdapterStatusEnum previous, DebugAdapterStatusEnum current)
 {
     Previous = previous;
     Current  = current;
 }
예제 #8
0
 public override void StepOut(Response response, dynamic arguments)
 {
     debuggingService.Step(JavaScriptDiagStepType.JsDiagStepTypeStepOut);
     SendResponse(response);
     DebugAdapterStatus = DebugAdapterStatusEnum.Ready;
 }