in adapter/src/debugSession.ts [494:643]
protected dispatchRequest(request: DebugProtocol.Request): void {
const response = new Response(request);
try {
if (request.command === 'initialize') {
var args = <DebugProtocol.InitializeRequestArguments> request.arguments;
if (typeof args.linesStartAt1 === 'boolean') {
this._clientLinesStartAt1 = args.linesStartAt1;
}
if (typeof args.columnsStartAt1 === 'boolean') {
this._clientColumnsStartAt1 = args.columnsStartAt1;
}
if (args.pathFormat !== 'path') {
this.sendErrorResponse(response, 2018, 'debug adapter only supports native paths', null, ErrorDestination.Telemetry);
} else {
const initializeResponse = <DebugProtocol.InitializeResponse> response;
initializeResponse.body = {};
this.initializeRequest(initializeResponse, args);
}
} else if (request.command === 'launch') {
this.launchRequest(<DebugProtocol.LaunchResponse> response, request.arguments, request);
} else if (request.command === 'attach') {
this.attachRequest(<DebugProtocol.AttachResponse> response, request.arguments, request);
} else if (request.command === 'disconnect') {
this.disconnectRequest(<DebugProtocol.DisconnectResponse> response, request.arguments, request);
} else if (request.command === 'terminate') {
this.terminateRequest(<DebugProtocol.TerminateResponse> response, request.arguments, request);
} else if (request.command === 'restart') {
this.restartRequest(<DebugProtocol.RestartResponse> response, request.arguments, request);
} else if (request.command === 'setBreakpoints') {
this.setBreakPointsRequest(<DebugProtocol.SetBreakpointsResponse> response, request.arguments, request);
} else if (request.command === 'setFunctionBreakpoints') {
this.setFunctionBreakPointsRequest(<DebugProtocol.SetFunctionBreakpointsResponse> response, request.arguments, request);
} else if (request.command === 'setExceptionBreakpoints') {
this.setExceptionBreakPointsRequest(<DebugProtocol.SetExceptionBreakpointsResponse> response, request.arguments, request);
} else if (request.command === 'configurationDone') {
this.configurationDoneRequest(<DebugProtocol.ConfigurationDoneResponse> response, request.arguments, request);
} else if (request.command === 'continue') {
this.continueRequest(<DebugProtocol.ContinueResponse> response, request.arguments, request);
} else if (request.command === 'next') {
this.nextRequest(<DebugProtocol.NextResponse> response, request.arguments, request);
} else if (request.command === 'stepIn') {
this.stepInRequest(<DebugProtocol.StepInResponse> response, request.arguments, request);
} else if (request.command === 'stepOut') {
this.stepOutRequest(<DebugProtocol.StepOutResponse> response, request.arguments, request);
} else if (request.command === 'stepBack') {
this.stepBackRequest(<DebugProtocol.StepBackResponse> response, request.arguments, request);
} else if (request.command === 'reverseContinue') {
this.reverseContinueRequest(<DebugProtocol.ReverseContinueResponse> response, request.arguments, request);
} else if (request.command === 'restartFrame') {
this.restartFrameRequest(<DebugProtocol.RestartFrameResponse> response, request.arguments, request);
} else if (request.command === 'goto') {
this.gotoRequest(<DebugProtocol.GotoResponse> response, request.arguments, request);
} else if (request.command === 'pause') {
this.pauseRequest(<DebugProtocol.PauseResponse> response, request.arguments, request);
} else if (request.command === 'stackTrace') {
this.stackTraceRequest(<DebugProtocol.StackTraceResponse> response, request.arguments, request);
} else if (request.command === 'scopes') {
this.scopesRequest(<DebugProtocol.ScopesResponse> response, request.arguments, request);
} else if (request.command === 'variables') {
this.variablesRequest(<DebugProtocol.VariablesResponse> response, request.arguments, request);
} else if (request.command === 'setVariable') {
this.setVariableRequest(<DebugProtocol.SetVariableResponse> response, request.arguments, request);
} else if (request.command === 'setExpression') {
this.setExpressionRequest(<DebugProtocol.SetExpressionResponse> response, request.arguments, request);
} else if (request.command === 'source') {
this.sourceRequest(<DebugProtocol.SourceResponse> response, request.arguments, request);
} else if (request.command === 'threads') {
this.threadsRequest(<DebugProtocol.ThreadsResponse> response, request);
} else if (request.command === 'terminateThreads') {
this.terminateThreadsRequest(<DebugProtocol.TerminateThreadsResponse> response, request.arguments, request);
} else if (request.command === 'evaluate') {
this.evaluateRequest(<DebugProtocol.EvaluateResponse> response, request.arguments, request);
} else if (request.command === 'stepInTargets') {
this.stepInTargetsRequest(<DebugProtocol.StepInTargetsResponse> response, request.arguments, request);
} else if (request.command === 'gotoTargets') {
this.gotoTargetsRequest(<DebugProtocol.GotoTargetsResponse> response, request.arguments, request);
} else if (request.command === 'completions') {
this.completionsRequest(<DebugProtocol.CompletionsResponse> response, request.arguments, request);
} else if (request.command === 'exceptionInfo') {
this.exceptionInfoRequest(<DebugProtocol.ExceptionInfoResponse> response, request.arguments, request);
} else if (request.command === 'loadedSources') {
this.loadedSourcesRequest(<DebugProtocol.LoadedSourcesResponse> response, request.arguments, request);
} else if (request.command === 'dataBreakpointInfo') {
this.dataBreakpointInfoRequest(<DebugProtocol.DataBreakpointInfoResponse> response, request.arguments, request);
} else if (request.command === 'setDataBreakpoints') {
this.setDataBreakpointsRequest(<DebugProtocol.SetDataBreakpointsResponse> response, request.arguments, request);
} else if (request.command === 'readMemory') {
this.readMemoryRequest(<DebugProtocol.ReadMemoryResponse> response, request.arguments, request);
} else if (request.command === 'writeMemory') {
this.writeMemoryRequest(<DebugProtocol.WriteMemoryResponse> response, request.arguments, request);
} else if (request.command === 'disassemble') {
this.disassembleRequest(<DebugProtocol.DisassembleResponse> response, request.arguments, request);
} else if (request.command === 'cancel') {
this.cancelRequest(<DebugProtocol.CancelResponse> response, request.arguments, request);
} else if (request.command === 'breakpointLocations') {
this.breakpointLocationsRequest(<DebugProtocol.BreakpointLocationsResponse> response, request.arguments, request);
} else if (request.command === 'setInstructionBreakpoints') {
this.setInstructionBreakpointsRequest(<DebugProtocol.SetInstructionBreakpointsResponse> response, request.arguments, request);
} else {
this.customRequest(request.command, <DebugProtocol.Response> response, request.arguments, request);
}
} catch (e) {
this.sendErrorResponse(response, 1104, '{_stack}', { _exception: e.message, _stack: e.stack }, ErrorDestination.Telemetry);
}
}