Skip to content

Latest commit

 

History

History
576 lines (561 loc) · 14.4 KB

File metadata and controls

576 lines (561 loc) · 14.4 KB

Debug Adapter Protocol support status.

Key to Notation

+ Implemented
- Not implemented
! Partially implemented
@@ Comments @@

Base Protocol

ProtocolMessage, Request, Event, Response, Cancel Request

Events

Stopped Event, Continued Event, Exited Event, Terminated Event, Thread Event, Output Event, Breakpoint Event, Module Event, Process Event, Capabilities Event

Requests

Initialize Request, Launch Request, Attach Request, Disconnect Request, Terminate Request, SetBreakpoints Request, SetFunctionBreakpoints Request, SetExceptionBreakpoints Request, Continue Request, Next Request, StepIn Request, StepOut Request, Pause Request, StackTrace Request, Scopes Request, Variables Request SetVariable Request, Threads Request, Modules Request, Evaluate Request, SetExpression Request, ExceptionInfo Request

Types

Capabilities, ExceptionBreakpointsFilter, Module, Thread, Source, StackFrame, Scope, Variable, SourceBreakpoint, FunctionBreakpoint, Breakpoint, ExceptionFilterOptions, ExceptionOptions, ExceptionDetails, ExpressionEvaluationOptions

Base Protocol

ProtocolMessage

+  seq: number;
+  type: 'request' | 'response' | 'event' | string;

Request

+  command: string;
+  arguments?: any;

Event

+  event: string;
+  body?: any;

Response

+  request_seq: number;
+  success: boolean;
+  command: string;
+  message?: 'cancelled' | 'notStopped' | string;
+  body?: any;

ErrorResponse

-  error?: Message;

CancelRequest cancel

+   requestId?: number;
-   progressId?: string;

CancelResponse

StoppedEvent

+   reason: 'step' | 'breakpoint' | 'exception' | 'pause' | 'entry' | 'function breakpoint'
-       | 'goto' | 'data breakpoint' | 'instruction breakpoint'
+       | string;
-   description?: string;
+   threadId?: number;
-   preserveFocusHint?: boolean;
+   text?: string;
+   allThreadsStopped?: boolean;
+   hitBreakpointIds?: number[];

ContinuedEvent

+   threadId: number;
+   allThreadsContinued?: boolean;

ExitedEvent

+   exitCode: number;

TerminatedEvent

-   restart?: any;

ThreadEvent

+   reason: 'started' | 'exited' | string;
+   threadId: number;

OutputEvent

+   category?: 'console' | 'stdout' | 'stderr'
-              | 'important' | 'telemetry'
+              | string;
+   output: string;
-   group?: 'start' | 'startCollapsed' | 'end';
-   variablesReference?: number;
+   source?: Source;
-   line?: number;
-   column?: number;
-   data?: any;
-   locationReference?: number;

BreakpointEvent

+   reason: 'changed' | 'new' | 'removed' | string;
+   breakpoint: Breakpoint;

ModuleEvent

+   reason: 'new' | 'changed' | 'removed';
+   module: Module;

ProcessEvent

+   name: string;
+   systemProcessId?: number;
+   isLocalProcess?: boolean;
+   startMethod?: 'launch' | 'attach'
-               | 'attachForSuspendedLaunch';
+   pointerSize?: number;

CapabilitiesEvent

+   capabilities: Capabilities;

Requests

InitializeRequest initialize

+   clientID?: string;
+   clientName?: string;
+   adapterID: string;
-   locale?: string;
-   linesStartAt1?: boolean;
-   columnsStartAt1?: boolean;
-   pathFormat?: 'path' | 'uri' | string;
-   supportsVariableType?: boolean;
-   supportsVariablePaging?: boolean;
-   supportsRunInTerminalRequest?: boolean;
-   supportsMemoryReferences?: boolean;
-   supportsProgressReporting?: boolean;
-   supportsInvalidatedEvent?: boolean;
-   supportsMemoryEvent?: boolean;
-   supportsArgsCanBeInterpretedByShell?: boolean;
-   supportsStartDebuggingRequest?: boolean;
-   supportsANSIStyling?: boolean;

InitializeResponse

+   body?: Capabilities;

LaunchRequest launch

-   noDebug?: boolean;
-   __restart?: any;
@@ VSCode IDE additional fields: @@
+   cwd?: string;
+   env?: string;
+   program?: string;
+   args?: string;
+   stopAtEntry?: boolean;
+   justMyCode?: boolean;
+   enableStepFiltering?: boolean;
+   expressionEvaluationOptions?: ExpressionEvaluationOptions;

LaunchResponse

AttachRequest attach

-   __restart?: any;
@@ additional field: @@
+   processId number;

AttachResponse

DisconnectRequest disconnect

-   restart?: boolean;
+   terminateDebuggee?: boolean;
-   suspendDebuggee?: boolean;

DisconnectResponse

TerminateRequest terminate

-   restart?: boolean;

TerminateResponse

SetBreakpointsRequest setBreakpoints

+   source: Source;
+   breakpoints?: SourceBreakpoint[];
-   lines?: number[];
-   sourceModified?: boolean;

SetBreakpointsResponse

+   breakpoints: Breakpoint[];

SetFunctionBreakpointsRequest setFunctionBreakpoints

+   breakpoints: FunctionBreakpoint[];

SetFunctionBreakpointsResponse

+   breakpoints: Breakpoint[];

SetExceptionBreakpointsRequest setExceptionBreakpoints

+   filters: string[];
+   filterOptions?: ExceptionFilterOptions[];
-   exceptionOptions?: ExceptionOptions[];

SetExceptionBreakpointsResponse

+   breakpoints?: Breakpoint[];

ContinueRequest continue

+   threadId: number;
-   singleThread?: boolean;

ContinueResponse

+   allThreadsContinued?: boolean;
@@ VSCode IDE additional field: @@
+   threadId: number;

NextRequest next

+   threadId: number;
-   singleThread?: boolean;
-   granularity?: SteppingGranularity;

NextResponse

StepInRequest stepIn

+   threadId: number;
-   singleThread?: boolean;
-   targetId?: number;
-   granularity?: SteppingGranularity;

StepInResponse

StepOutRequest stepOut

+   threadId: number;
-   singleThread?: boolean;
-   granularity?: SteppingGranularity;

StepOutResponse

PauseRequest pause

+   threadId: number;

PauseResponse

StackTraceRequest stackTrace

+   threadId: number;
+   startFrame?: number;
+   levels?: number;
-   format?: StackFrameFormat;

StackTraceResponse

+   stackFrames: StackFrame[];
+   totalFrames?: number;

ScopesRequest scopes

+   frameId: number;

ScopesResponse

+   scopes: Scope[];

VariablesRequest variables

+   variablesReference: number;
+   filter?: 'indexed' | 'named';
+   start?: number;
+   count?: number;
-   format?: ValueFormat;

VariablesResponse

+   variables: Variable[];

SetVariableRequest setVariable

+   variablesReference: number;
+   name: string;
+   value: string;
-   format?: ValueFormat;

SetVariableResponse

+   value: string;
-   type?: string;
-   variablesReference?: number;
-   namedVariables?: number;
-   indexedVariables?: number;
-   memoryReference?: string;
-   valueLocationReference?: number;

ThreadsRequest threads

ThreadsResponse

+   threads: Thread[];

ModulesRequest modules

+   startModule?: number;
+   moduleCount?: number;

ModulesResponse

+   modules: Module[];
+   totalModules?: number;

EvaluateRequest evaluate

+   expression: string;
+   frameId?: number;
-   line?: number;
-   column?: number;
-   source?: Source;
-   context?: 'watch' | 'repl' | 'hover' | 'clipboard' | 'variables' | string;
-   format?: ValueFormat;

EvaluateResponse

+   result: string;
+   type?: string;
-   presentationHint?: VariablePresentationHint;
+   variablesReference: number;
+   namedVariables?: number;
-   indexedVariables?: number;
-   memoryReference?: string;
-   valueLocationReference?: number;

SetExpressionRequest setExpression

+   expression: string;
+   value: string;
+   frameId?: number;
-   format?: ValueFormat;

SetExpressionResponse

+   value: string;
-   type?: string;
-   presentationHint?: VariablePresentationHint;
-   variablesReference?: number;
-   namedVariables?: number;
-   indexedVariables?: number;
-   memoryReference?: string;
-   valueLocationReference?: number;

ExceptionInfoRequest exceptionInfo

+   threadId: number;

ExceptionInfoResponse

+   exceptionId: string;
+   description?: string;
+   breakMode: ExceptionBreakMode;
+   details?: ExceptionDetails;

Types

Capabilities

+   supportsConfigurationDoneRequest?: boolean;
+   supportsFunctionBreakpoints?: boolean;
+   supportsConditionalBreakpoints?: boolean;
+   supportsHitConditionalBreakpoints?: boolean;
-   supportsEvaluateForHovers?: boolean;
+   exceptionBreakpointFilters?: ExceptionBreakpointsFilter[];
-   supportsStepBack?: boolean;
+   supportsSetVariable?: boolean;
-   supportsRestartFrame?: boolean;
-   supportsGotoTargetsRequest?: boolean;
-   supportsStepInTargetsRequest?: boolean;
-   supportsCompletionsRequest?: boolean;
-   completionTriggerCharacters?: string[];
-   supportsModulesRequest?: boolean;
-   additionalModuleColumns?: ColumnDescriptor[];
-   supportedChecksumAlgorithms?: ChecksumAlgorithm[];
-   supportsRestartRequest?: boolean;
+   supportsExceptionOptions?: boolean;
-   supportsValueFormattingOptions?: boolean;
+   supportsExceptionInfoRequest?: boolean;
+   supportTerminateDebuggee?: boolean;
-   supportSuspendDebuggee?: boolean;
-   supportsDelayedStackTraceLoading?: boolean;
-   supportsLoadedSourcesRequest?: boolean;
-   supportsLogPoints?: boolean;
-   supportsTerminateThreadsRequest?: boolean;
+   supportsSetExpression?: boolean;
+   supportsTerminateRequest?: boolean;
-   supportsDataBreakpoints?: boolean;
-   supportsReadMemoryRequest?: boolean;
-   supportsWriteMemoryRequest?: boolean;
-   supportsDisassembleRequest?: boolean;
+   supportsCancelRequest?: boolean;
-   supportsBreakpointLocationsRequest?: boolean;
-   supportsClipboardContext?: boolean;
-   supportsSteppingGranularity?: boolean;
-   supportsInstructionBreakpoints?: boolean;
+   supportsExceptionFilterOptions?: boolean;
-   supportsSingleThreadExecutionRequests?: boolean;
-   supportsDataBreakpointBytes?: boolean;
-   breakpointModes?: BreakpointMode[];
-   supportsANSIStyling?: boolean;

ExceptionBreakpointsFilter

+   filter: string;
+   label: string;
-   description?: string;
-   default?: boolean;
-   supportsCondition?: boolean;
-   conditionDescription?: string;

Module

+   id: number | string;
+   name: string;
+   path?: string;
+   isOptimized?: boolean;
+   isUserCode?: boolean;
-   version?: string;
+   symbolStatus?: string;
+   symbolFilePath?: string;
-   dateTimeStamp?: string;
+   addressRange?: string;

Thread

+   id: number;
+   name: string;

Source

+   name?: string;
+   path?: string;
-   sourceReference?: number;
-   presentationHint?: 'normal' | 'emphasize' | 'deemphasize';
-   origin?: string;
-   sources?: Source[];
-   adapterData?: any;
-   checksums?: Checksum[];

StackFrame

+   id: number;
+   name: string;
+   source?: Source;
+   line: number;
+   column: number;
+   endLine?: number;
+   endColumn?: number;
-   canRestart?: boolean;
-   instructionPointerReference?: string;
+   moduleId?: number | string;
-   presentationHint?: 'normal' | 'label' | 'subtle';

Scope

+   name: string;
-   presentationHint?: 'arguments' | 'locals' | 'registers' | 'returnValue' | string;
+   variablesReference: number;
+   namedVariables?: number;
+   indexedVariables?: number;
+   expensive: boolean;
-   source?: Source;
-   line?: number;
-   column?: number;
-   endLine?: number;
-   endColumn?: number;

Variable

+   name: string;
+   value: string;
+   type?: string;
-   presentationHint?: VariablePresentationHint;
+   evaluateName?: string;
+   variablesReference: number;
+   namedVariables?: number;
+   indexedVariables?: number;
-   memoryReference?: string;
-   declarationLocationReference?: number;
-   valueLocationReference?: number;

SourceBreakpoint

+   line: number;
+   column?: number;
+   condition?: string;
+   hitCondition?: string;
-   logMessage?: string;
-   mode?: string;

FunctionBreakpoint

+   name: string;
+   condition?: string;
+   hitCondition?: string;

Breakpoint

+   id?: number;
+   verified: boolean;
+   message?: string;
+   source?: Source;
+   line?: number;
-   column?: number;
+   endLine?: number;
-   endColumn?: number;
-   instructionReference?: string;
-   offset?: number;
-   reason?: 'pending' | 'failed';

ExceptionFilterOptions

+   filterId: string;
+   condition?: string;
-   mode?: string;

ExceptionOptions

-   path?: ExceptionPathSegment[];
+   breakMode: ExceptionBreakMode;

ExceptionDetails

+   message?: string;
+   typeName?: string;
+   fullTypeName?: string;
+   evaluateName?: string;
+   stackTrace?: string;
+   innerException?: ExceptionDetails[];
@@ VSCode IDE additional fields: @@
+   std::string formattedDescription;
+   std::string source;

ExpressionEvaluationOptions

@@ VSCode IDE additional field: @@
+   allowImplicitFuncEval?: boolean;