Change Log
All notable changes to the specification will be documented in this file.
- 1.70.x
- Clarify how
StackTraceArguments.formatapplies - Clarify the default behavior of
ContinuedEvent.allThreadsContinued - Clarify representation of breakpoints after a
changedevent
- Clarify how
- 1.69.x
- Clarify the flow diagram to start a debug session
- Add
supportsANSIStylingcapabilities to allow colorization of text from debug adapters
- 1.68.x
- Add
locationReferences to Variable-related data types to allow navigation to declarations, and a correspondinglocationsrequest. - Clarify the meaning of “system process”
- Clarify the lifetime of
variableReferences after asetVariablecall - Fix typographic errors in
StackFrame.canRestart
- Add
- 1.67.x
- Add
line,column, andsourcelocation attributions toEvaluateArguments - Add
returnValueas a well-knownScope.presentationHint
- Add
- 1.66.x
- Add
bytesandasAddressproperties to theDataBreakpointInforequest
- Add
- 1.65.x
- Clarify handling of multiple filters in the
SetExceptionBreakpointsrequest - Clarify lifetimes of objects created outside of suspended states
- Add a
BreakpointModefor setting different types of breakpoints
- Clarify handling of multiple filters in the
- 1.64.x
- Clarify that the
offsetin theInstructionBreakpointis given in bytes - Add a
presentationHintto theDisassembledInstruction - Add a
reasonto theBreakpointto indicate why verification may have failed
- Clarify that the
- 1.63.x
- Add
memoryReferencesupport to theSetVariableResponse/SetExpressionResponse - Fix a typo in the description of
BreakpointLocationsArguments - Fix missing line break in
CancelRequest - Clarify
memoryReferenceinVariabletype - Clarify state of “object ID”s in
VariablePresentationHint
- Add
- 1.62.x
- Clarify lifetime of
DataBreakpoint.dataId
- Clarify lifetime of
- 1.61.x
- Removed unused
ModulesViewDescriptorinterface - Clarify the applicability of
supportsVariablePaging - Fix mention of non-existent
hitConditioninSetExceptionBreakpointsResponse
- Removed unused
- 1.60.x
- Clarify the usage of
hitConditionandlogMessageinSetBreakpointsRequest
- Clarify the usage of
- 1.59.x:
- Add an optional
frameIdto theDataBreakpointInfoRequest - Add
notStoppedas a well-known reason inResponse - Clarify the lifetime of
variablesReference. - Clarify the default behavior when
kindis omitted from theRunInTerminalRequest. - Clarify end of file behavior for
readMemory.
- Add an optional
- 1.58.x:
- Specify the measurement unit of various
columnand “character positions” properties to be “UTF-16 code units”.
- Specify the measurement unit of various
- 1.57.x:
- Add the
argsCanBeInterpretedByShellproperty to theRunInTerminalRequest
- Add the
- 1.56.x:
- Add additional information to the
StepInTarget - Clarification around wording for “clients”
- Clarification around “falsey” in
CompletionItem.text - Specify checksums to be given a hexadecimal strings, and timestamps as RFC 3339 date strings
- Make wording on source.origin more clear to be non-exhaustive
- Add additional information to the
- 1.55.x:
- Improved descriptions for
terminateanddisconnectrequests. - Add missing value
variablesto thecontextargument of theevaluaterequest. - Fix a mistake in the description of the
ExceptionFilterOptionstype.
- Improved descriptions for
- 1.54.x:
- Add a new boolean property
lazyon theVariablePresentationHint. Clients can use that flag to present the variable with a UI that supports a specific gesture to trigger its evaluation.
- Add a new boolean property
- 1.53.x:
- Add a new
detailproperty on the CompletionItem
- Add a new
- 1.52.x:
- clarify comment for
Variable.value.
- clarify comment for
- 1.51.x:
- Add a new category
importantto theoutputevent. This is a hint for clients to show the message with a highly visible UI. - Clarify the description of all execution control requests (
continue,next,stepIn,stepOut,stepBack,reverseContinue) - Add a new capability
supportsSingleThreadExecutionRequeststo indicate that the execution control requests support thesingleThreadproperty. - Add a new optional
singleThreadproperty to all execution control requests.
- Add a new category
- 1.49.x:
- Add
memoryevent and a corresponding client capabilitysupportsMemoryEvent.
- Add
- 1.48.x:
- Add guidance for the case that a debug adapter implements both
setVariableandsetExpressionand clients need to decide which request to use. - Add
writeMemoryrequest and a correspondingsupportsWriteMemoryRequestcapability.
- Add guidance for the case that a debug adapter implements both
- 1.47.x:
- The
setExceptionBreakpointscan now optionally return an array ofBreakpoints as the othersetXxxxBreakpointsdo. This allows clients to show validation error messages for individual exception breakpoints or filters. - The
restartrequest got a new optional parameterargumentswhere a client can pass the latest version of a launch or attach configuration. - Adds a new optional argument
suspendDebuggeeto thedisconnectrequest. If a debug adapter has opted into this feature with thesupportSuspendDebuggeecapability, a client can use this to control whether the debuggee should be suspended when the debugger is disconnected.
- The
- 1.46.x:
- Add an optional attribute
hitBreakpointIdsto thestoppedevent which contains the ids of the breakpoints that triggered the event.
- Add an optional attribute
- 1.45.x:
- Add new UI attribute
descriptionandconditionDescriptionto theExceptionBreakpointsFilter. With these clients can display additional information about exception breakpoints. - Improved description for
setExceptionBreakpointsrequest by adding guidance for what an adapter should do if the user inputs an invalid exception breakpoint condition. - Add new optional boolean property
canRestartto the stack frame. It indicated whether the stack frame can be restarted with therestartrequest.
- Add new UI attribute
- 1.44.x:
- Deprecated the value
dataBreakpointofVariablePresentationHint.kind. Instead a new valuehasDataBreakpointhas been added to theVariablePresentationHint.attribute.
- Deprecated the value
- 1.43.x:
- Add support for conditional exceptions. With this the
setExceptionBreakpointsrequest got a new propertyfilterOptionsfor setting the exception filters and their conditions. The corresponding capability issupportsExceptionFilterOptions. - Clarify the description of the
stackTracerequest and itstotalFramesproperty. - Clarify the description of the
cwdproperty of therunInTerminalrequest: a client is only expected to execute a change directory command ifcwdcontains a non-empty, valid path.
- Add support for conditional exceptions. With this the
- 1.42.x:
- Add
invalidatedevent and a corresponding client capabilitysupportsInvalidatedEvent.
- Add
- 1.41.x:
- Add “stepping granularity” support for the stepping requests
next,stepIn,stepOut,stepBackand a corresponding client capabilitysupportsSteppingGranularity. - Add instruction breakpoints and a corresponding client capability
supportsInstructionBreakpoints.
- Add “stepping granularity” support for the stepping requests
- 1.40.x:
- New value
clipboardforcontextargument ofevaluaterequest. - Add support for reporting progress via
progressStart,progressUpdate, andprogressEndevents and a corresponding client capabilitysupportsProgressReporting. Progress can be cancelled via a newprogressIdargument for thecancelrequest. - Clarified descriptions of all optional requests, events, and attributes to make clear what is the corresponding capability.
- New value
- 1.39.x:
- Add optional
selectionStartandselectionLengthattributes to completion item. With these attributes the selection range or position can be controlled after the completion text has been inserted. - Add optional
groupattribute tooutputevent in order to keep an output log organized by grouping related messages.
- Add optional
- 1.38.x:
- Fixes some typos and improves some comments.
- 1.37.x:
- Adds a
breakpointLocationsrequest (and a correspondingsupportsBreakpointLocationsRequestcapability) for finding the possible breakpoints for a source range. - Adds cancellation support for requests via a new
cancelrequest and a correspondingsupportsCancelRequestcapability. - Improves some comments.
- Adds a
- 1.36.x:
- Introduces a capability
completionTriggerCharactersfor announcing the characters that a frontend UI should use to trigger completion. - Adds an optional
sortTextattribute to theCompletionItemtype. - In the schema change “number” to “integer” in cases where a float makes no sense, e.g. for IDs.
- Introduces a capability
- 1.35.x:
- Adds an optional
presentationHintattribute to theScopetype which can be used to add semantic to the scope’s contents. An example is to mark a scope as a “registers” scope that contains “registers” instead of variables. - Adds experimental support for memory access via a new
readMemoryrequest and a correspondingsupportsReadMemoryRequestcapability. - Adds experimental support for memory disassembly via a new
disassemblerequest and a correspondingsupportsDisassembleRequestcapability.
- Adds an optional
- 1.34.x:
- Adds support for data breakpoints via the ‘dataBreakpointInfo’ and ‘setDataBreakpoints’ requests and the ‘supportsDataBreakpoints’ capability.
- Improves some comments.
- 1.33.x:
- Point out that the breakpoint’s
idattribute is mandatory whenbreakpointevents are used. - Return a new attribute
shellProcessIdfrom therunInTerminalrequest.
- Point out that the breakpoint’s
- 1.32.x:
- Adds an optional boolean argument
restartto theterminateanddisconnectrequests. The valuetrueindicates that theterminateordisconnectrequest is part of a restart sequence. - Move specification to DAP web site.
- Adds an optional boolean argument
- 1.31.x:
- Adds a new optional
terminaterequest which can be used to give a debuggee the chance to shutdown gracefully. A correspondingsupportsTerminateRequestcapability announces that an adapter implements the request.
- Adds a new optional
- 1.30.x:
- Comment cosmetics.
- 1.29.x:
- Adds a new value for the ‘reason’ attribute of the ‘stopped’ event. This is used when an adapter implements the ‘goto’ request.
- 1.28.x:
- Adds an optional attribute
clientNameto theInitializerequest. This makes it possible to surface the human readable name of the client in error messages coming from the adapter. - Adds a
terminateThreadsrequest and a correspondingsupportsTerminateThreadsRequestcapability. - Made the
__restartattribute official on thelaunchorattachrequests. It corresponds to therestartattribute on theterminatedevent. - Adds a
setExpressionrequest and a correspondingsupportsSetExpressioncapability. This request can be used to assign a value to an assignable expression (aka “l-value”). - Adds a new optional
preserveFocusHintto thestoppedevent. A value of true hints to the frontend that this event should not change the focus.
- Adds an optional attribute
- 1.27.x:
- Adds a new
capabilitiesevent that hints to the frontend that one or more capabilities got updated. - Initial support for logPoints: new attribute
SourceBreakpoint.logMessageand capabilitysupportsLogPoint.
- Adds a new
-
1.26.x: no protocol changes
- 1.25.x:
- Adds a new enum value
virtualfor thepresentationHintattribute of typeVariable. - To remove env variables from the environment support a ‘null’ value for
envattribute inrunInTerminalrequest.
- Adds a new enum value
- 1.24.x:
- Adds
removedto the value set of thereasonattribute of theBreakpointEvent. - Adds a
localeattribute to theinitializerequest. The adapter can use this information to translate user visible information.
- Adds
- 1.23.x:
- Adds a
source,line, andcolumnattributes to theOutputevent. With this a frontend can show a link to the source where the output was generated. - Adds support for retrieving loaded scripts and receiving loaded script events (
LoadedSourcesRequest,LoadedSourceEvent). - Adds display hints for variables and evaluation results (type
VariablePresentationHint).
- Adds a
- 1.22.x:
- Adds a new enum value
normalfor thepresentationHintattribute of typeSource. - Adds a new event
processthat conveys process ID and other information about the debuggee.
- Adds a new enum value
- 1.21.x:
- Adds optional attribute
includeAllto typeStackFrameFormat. With this theStackTraceRequestcan be parameterized to include all stack frames, including those the DA might otherwise hide. - Adds capability
supportsDelayedStackTraceLoadingthat indicates that a debug adapter supports the delayed loading of parts of the stack. This requires that both thestartFrameandlevelsarguments and thetotalFramesresult of theStackTraceRequestare supported.
- Adds optional attribute
- 1.20.x:
- Extends the type of the
TerminatedEvent.body.restartattribute frombooleantoany. This makes it possible to loop arbitrary data from one debug session to the next. - Adds a new enum value
subtlefor thepresentationHintattribute of typeStackFrame.
- Extends the type of the
- 1.19.x:
- Adds a new optional argument
terminateDebuggeeto thedisconnectrequest. If a debug adapter has opted into this feature with the ‘supportTerminateDebuggee’ capability, a client can use this to control whether the debuggee should be terminated when the debugger is disconnected.
- Adds a new optional argument
- 1.18.x:
- Adds optional attribute
sourceto theSourceArguments. - Made StoppedEvent’s
reasonattribute robust against translation by introducing a newdescriptionattribute. - Add a new optional attribute
presentationHintto theStackFrametype. This attribute can be used to control how the frame is rendered in the UI.
- Adds optional attribute
- 1.17.x:
- Adds optional attribute
clientIDto theInitializeRequestArguments. - Adds support for obtaining exception details:
ExceptionInfoRequest,ExceptionDetails. - Adds optional parameter
formatto theSetVariableRequest.
- Adds optional attribute
- 1.16.x:
- Updated comments for
pathandsourceReferenceattributes ofSourcetype (the frontend no longer needs to have a notion of ‘internal’ modules; it just loads the content of a Source either through the sourceReference or the path). - Adds optional
presentationHintattribute toSourcetype. This allows to control how the frontend shows a source reference in th UI. - Removed
SHA1NormalizedandSHA256Normalizedvalues from typeChecksumAlgorithm.
- Updated comments for
- 1.15.x:
- Adds a
reverseContinuerequest. - Adds a
restartrequest and a correspondingsupportsRestartRequestcapability. - Adds a
variablesReferenceattribute to theOutputEvent. - Adds support for exception configuration options.
- Adds formatting options support for values returned from
VariablesRequest,EvaluateRequest, andStackTraceRequest.
- Adds a
- 1.14.x:
- Adds optional
typeattribute to theSetVariableResponsetype. - Support to return a structured object from the
SetVariableRequest. - Fine tuning of
Modulepart of the protocol. - Adds optional attribute
evaluatabletoVariabletype. - Adds optional checksum support to
Sourcetype. - Adds optional source range to
Scopetype.
- Adds optional
- 1.13.x:
- Fix typo in
Capabilitiestype. - Adds an optional
hitConditionattribute to breakpoints and a correspondingsupportsHitConditionalBreakpointscapability.
- Fix typo in
- 1.12.x:
- Adds a new optional attribute
frameIdto thecompletionRequest. - Introduces a
runInTerminalRequestso that a debug adapter can run a debuggee in a terminal managed by the frontend. - Adds a
typeattribute (and a value set) to theCompletionItem.
- Adds a new optional attribute
- 1.11.x:
- Adds a new optional attribute
mimeTypeto theSourceResponse. - Adds a new optional attribute
sourceModifiedto theSetBreakpointsArgumentsthat indicates that the underlying source has been modified which results in new breakpoint locations. - Adds a new optional attribute
supportsVariableTypetoInitializeRequestArguments. True indicates that the client shows the variable’s type attribute in the UI. - Adds optional ‘type’ attribute to the
EvaluateResponse. - Introduces the
RestartFrameRequestand a correspondingsupportsRestartFramecapability. - Introduces a
ContinuedEventso that a debug adapter can explicit trigger that a thread has continued execution. - Adds support for step in targets (request
StepInTargetsRequest, typeStepInTarget, capabilitysupportsStepInTargetsRequest) - Adds support for goto targets (requests
GotoTargetsRequestandGotoRequest, typeGotoTarget, capabilitysupportsGotoTargetsRequest) - Adds support for variable paging, that is named and indexed children of a variable can be requested in pages (chunks).
- Adds experimental support for completion proposals.
- Adds a new optional attribute
- 1.10.x:
- Introduces a
stepBackrequest and a correspondingsupportsStepBackcapability. - Introduces the type
Module, aModuleRequest, and aModuleEvent - Introduces the
setVariableRequest - Adds new optional attributes
typeandkindfor aVariable. - Adds optional attributes
endLineandendColumntoStackFrameandBreakpointtypes.
- Introduces a
- 1.9.x:
- Introduces a
allThreadsContinuedattribute on theContinueResponseto indicate that all threads are continued and not only the one specified.
- Introduces a
- 1.8.x:
- Introduces
ExceptionBreakpointsFilterand fixed corresponding capability. - Adds optional
noDebugattribute toLaunchRequestArguments. - Adds optional
startFrameargument toStackTraceArgumentsto allow for paging. - Adds optional
totalFramesargument toStackTraceResponseto allow for paging. - Improve comment:
InitializedEventmust not be sent beforeInitializeRequesthas returned its result.
- Introduces
- 1.7.x:
- Adds optional
urlandurlLabelattributes to the error messages. The frontend will show this as a UI to open additional information in a browser. - Added option
defaultattribute to theexceptionBreakpointFilterscapability. - Adds optional attribute
allThreadsStoppedto theStoppedEventto indicate that all threads are stopped (and not only the one mentioned in the event).
- Adds optional
- 1.6.x:
- A boolean
supportsConditionalBreakpointsinCapabilitiesindicates whether the debug adapter supports conditional breakpoints. - Adds an optional
exceptionBreakpointFilterscapability that lists the filters available for thesetExceptionBreakpointsrequest. - Adds an optional
restartattribute to theTerminatedEventwhich can be used to request a restart of the debug session.
- A boolean
- 1.5.x:
- A boolean
supportsFunctionBreakpointsinCapabilitiesindicates whether the debug adapter implements the function breakpoints. - Renamed
supportEvaluateForHoversinCapabilitiestosupportsEvaluateForHovers.
- A boolean
- 1.4.x:
- Made the
bodyof theInitializeResponseoptional (for backward compatibility).
- Made the
- 1.3.x: Version introduces support for feature negotiation.
- The
InitializeResponsehas now attributes for these features:- A boolean
supportsConfigurationDoneRequestindicates whether the debug adapter implements theConfigurationDoneRequest. - A boolean
supportEvaluateForHoversindicates whether the debug adapter supports a side effect freeEvaluateRequest.
- A boolean
- Adds an optional
dataattribute to theOutputEventand atelemetrycategory. - Adds a new context type
hoverto thecontextattribute of theEvaluateArguments.
- The
- 1.2.x: Version adds a new request:
- Introduces a
ConfigurationDoneRequestthat VS Code sends to indicate that the configuration of the debug session has finished and that debugging can start.
- Introduces a
- 1.1.x: Version adds support for conditional breakpoints and breakpoints in virtual documents:
- Type
Sourcesupports optionaloriginattribute to provide information that is shown in the debug UI. - Type
Sourcesupports an optionaladapterDataattribute that the VS Code debug UI will transparently persists for breakpoints. - Introduces type
SourceBreakpointthat makes it possible to providecolumnandconditioninformation when specifying a breakpoint.
- Type
- 1.0.1: Initial version of the debug protocol