Change Log
All notable changes to the specification will be documented in this file.
- 1.69.x
- Clarify the flow diagram to start a debug session
- Add
supportsANSIStyling
capabilities to allow colorization of text from debug adapters
- 1.68.x
- Add
locationReference
s to Variable-related data types to allow navigation to declarations, and a correspondinglocations
request. - Clarify the meaning of “system process”
- Clarify the lifetime of
variableReference
s after asetVariable
call - Fix typographic errors in
StackFrame.canRestart
- Add
- 1.67.x
- Add
line
,column
, andsource
location attributions toEvaluateArguments
- Add
returnValue
as a well-knownScope.presentationHint
- Add
- 1.66.x
-
Add
bytes
andasAddress
properties to theDataBreakpointInfo
request - 1.65.x
- Clarify handling of multiple filters in the
SetExceptionBreakpoints
request - Clarify lifetimes of objects created outside of suspended states
- Add a
BreakpointMode
for setting different types of breakpoints
- Clarify handling of multiple filters in the
- 1.64.x
- Clarify that the
offset
in theInstructionBreakpoint
is given in bytes - Add a
presentationHint
to theDisassembledInstruction
- Add a
reason
to theBreakpoint
to indicate why verification may have failed
- Clarify that the
- 1.63.x
- Add
memoryReference
support to theSetVariableResponse
/SetExpressionResponse
- Fix a typo in the description of
BreakpointLocationsArguments
- Fix missing line break in
CancelRequest
- Clarify
memoryReference
inVariable
type - 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
ModulesViewDescriptor
interface - Clarify the applicability of
supportsVariablePaging
- Fix mention of non-existent
hitCondition
inSetExceptionBreakpointsResponse
- Removed unused
- 1.60.x
- Clarify the usage of
hitCondition
andlogMessage
inSetBreakpointsRequest
- Clarify the usage of
- 1.59.x:
- Add an optional
frameId
to theDataBreakpointInfoRequest
- Add
notStopped
as a well-known reason inResponse
- Clarify the lifetime of
variablesReference
. - Clarify the default behavior when
kind
is omitted from theRunInTerminalRequest
. - Clarify end of file behavior for
readMemory
.
- Add an optional
- 1.58.x:
- Specify the measurement unit of various
column
and “character positions” properties to be “UTF-16 code units”.
- Specify the measurement unit of various
- 1.57.x:
- Add the
argsCanBeInterpretedByShell
property 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
terminate
anddisconnect
requests. - Add missing value
variables
to thecontext
argument of theevaluate
request. - Fix a mistake in the description of the
ExceptionFilterOptions
type.
- Improved descriptions for
- 1.54.x:
- Add a new boolean property
lazy
on 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
detail
property on the CompletionItem
- Add a new
- 1.52.x:
- clarify comment for
Variable.value
.
- clarify comment for
- 1.51.x:
- Add a new category
important
to theoutput
event. 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
supportsSingleThreadExecutionRequests
to indicate that the execution control requests support thesingleThread
property. - Add a new optional
singleThread
property to all execution control requests.
- Add a new category
- 1.49.x:
- Add
memory
event and a corresponding client capabilitysupportsMemoryEvent
.
- Add
- 1.48.x:
- Add guidance for the case that a debug adapter implements both
setVariable
andsetExpression
and clients need to decide which request to use. - Add
writeMemory
request and a correspondingsupportsWriteMemoryRequest
capability.
- Add guidance for the case that a debug adapter implements both
- 1.47.x:
- The
setExceptionBreakpoints
can now optionally return an array ofBreakpoint
s as the othersetXxxxBreakpoints
do. This allows clients to show validation error messages for individual exception breakpoints or filters. - The
restart
request got a new optional parameterarguments
where a client can pass the latest version of a launch or attach configuration. - Adds a new optional argument
suspendDebuggee
to thedisconnect
request. If a debug adapter has opted into this feature with thesupportSuspendDebuggee
capability, 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
hitBreakpointIds
to thestopped
event which contains the ids of the breakpoints that triggered the event.
- Add an optional attribute
- 1.45.x:
- Add new UI attribute
description
andconditionDescription
to theExceptionBreakpointsFilter
. With these clients can display additional information about exception breakpoints. - Improved description for
setExceptionBreakpoints
request by adding guidance for what an adapter should do if the user inputs an invalid exception breakpoint condition. - Add new optional boolean property
canRestart
to the stack frame. It indicated whether the stack frame can be restarted with therestart
request.
- Add new UI attribute
- 1.44.x:
- Deprecated the value
dataBreakpoint
ofVariablePresentationHint.kind
. Instead a new valuehasDataBreakpoint
has been added to theVariablePresentationHint.attribute
.
- Deprecated the value
- 1.43.x:
- Add support for conditional exceptions. With this the
setExceptionBreakpoints
request got a new propertyfilterOptions
for setting the exception filters and their conditions. The corresponding capability issupportsExceptionFilterOptions
. - Clarify the description of the
stackTrace
request and itstotalFrames
property. - Clarify the description of the
cwd
property of therunInTerminal
request: a client is only expected to execute a change directory command ifcwd
contains a non-empty, valid path.
- Add support for conditional exceptions. With this the
- 1.42.x:
- Add
invalidated
event and a corresponding client capabilitysupportsInvalidatedEvent
.
- Add
- 1.41.x:
- Add “stepping granularity” support for the stepping requests
next
,stepIn
,stepOut
,stepBack
and 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
clipboard
forcontext
argument ofevaluate
request. - Add support for reporting progress via
progressStart
,progressUpdate
, andprogressEnd
events and a corresponding client capabilitysupportsProgressReporting
. Progress can be cancelled via a newprogressId
argument for thecancel
request. - Clarifed descriptions of all optional requests, events, and attributes to make clear what is the corresponding capability.
- New value
- 1.39.x:
- add optional
selectionStart
andselectionLength
attributes to completion item. With these attributes the selection range or position can be controlled after the completion text has been inserted. - add optional
group
attribute tooutput
event 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
breakpointLocations
request (and a correspondingsupportsBreakpointLocationsRequest
capability) for finding the possible breakpoints for a source range. - Adds cancellation support for requests via a new
cancel
request and a correspondingsupportsCancelRequest
capability. - Improves some comments.
- Adds a
- 1.36.x:
- Introduces a capability
completionTriggerCharacters
for announcing the characters that a frontend UI should use to trigger completion. - Adds an optional
sortText
attribute to theCompletionItem
type. - 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
presentationHint
attribute to theScope
type 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
readMemory
request and a correspondingsupportsReadMemoryRequest
capability. - Adds experimental support for memory disassembly via a new
disassemble
request and a correspondingsupportsDisassembleRequest
capability.
- 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
id
attribute is mandatory whenbreakpoint
events are used. - Return a new attribute
shellProcessId
from therunInTerminal
request.
- Point out that the breakpoint’s
- 1.32.x:
- Adds an optional boolean argument
restart
to theterminate
anddisconnect
requests. The valuetrue
indicates that theterminate
ordisconnect
request is part of a restart sequence. - Move specification to DAP web site.
- Adds an optional boolean argument
- 1.31.x:
- Adds a new optional
terminate
request which can be used to give a debuggee the chance to shutdown gracefully. A correspondingsupportsTerminateRequest
capability 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
clientName
to theInitialize
request. This makes it possible to surface the human readable name of the client in error messages coming from the adapter. - Adds a
terminateThreads
request and a correspondingsupportsTerminateThreadsRequest
capability. - Made the
__restart
attribute official on thelaunch
orattach
requests. It corresponds to therestart
attribute on theterminated
event. - Adds a
setExpression
request and a correspondingsupportsSetExpression
capability. This request can be used to assign a value to an assignable expression (aka “l-value”). - Adds a new optional
preserveFocusHint
to thestopped
event. 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
capabilities
event that hints to the frontend that one or more capabilities got updated. - Initial support for logPoints: new attribute
SourceBreakpoint.logMessage
and capabilitysupportsLogPoint
.
- Adds a new
-
1.26.x: no protocol changes
- 1.25.x:
- Adds a new enum value
virtual
for thepresentationHint
attribute of typeVariable
. - To remove env variables from the environment support a ‘null’ value for
env
attribute inrunInTerminal
request.
- Adds a new enum value
- 1.24.x:
- Adds
removed
to the value set of thereason
attribute of theBreakpointEvent
. - Adds a
locale
attribute to theinitialize
request. The adapter can use this information to translate user visible information.
- Adds
- 1.23.x:
- Adds a
source
,line
, andcolumn
attributes to theOutput
event. 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
normal
for thepresentationHint
attribute of typeSource
. - Adds a new event
process
that conveys process ID and other information about the debuggee.
- Adds a new enum value
- 1.21.x:
- Adds optional attribute
includeAll
to typeStackFrameFormat
. With this theStackTraceRequest
can be parameterized to include all stack frames, including those the DA might otherwise hide. - Adds capability
supportsDelayedStackTraceLoading
that indicates that a debug adapter supports the delayed loading of parts of the stack. This requires that both thestartFrame
andlevels
arguments and thetotalFrames
result of theStackTraceRequest
are supported.
- Adds optional attribute
- 1.20.x:
- Extends the type of the
TerminatedEvent.body.restart
attribute fromboolean
toany
. This makes it possible to loop arbitrary data from one debug session to the next. - Adds a new enum value
subtle
for thepresentationHint
attribute of typeStackFrame
.
- Extends the type of the
- 1.19.x:
- Adds a new optional argument
terminateDebuggee
to thedisconnect
request. 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
source
to theSourceArguments
. - Made StoppedEvent’s
reason
attribute robust against translation by introducing a newdescription
attribute. - Add a new optional attribute
presentationHint
to theStackFrame
type. This attribute can be used to control how the frame is rendered in the UI.
- Adds optional attribute
- 1.17.x:
- Adds optional attribute
clientID
to theInitializeRequestArguments
. - Adds support for obtaining exception details:
ExceptionInfoRequest
,ExceptionDetails
. - Adds optional parameter
format
to theSetVariableRequest
.
- Adds optional attribute
- 1.16.x:
- Updated comments for
path
andsourceReference
attributes ofSource
type (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
presentationHint
attribute toSource
type. This allows to control how the frontend shows a source reference in th UI. - Removed
SHA1Normalized
andSHA256Normalized
values from typeChecksumAlgorithm
.
- Updated comments for
- 1.15.x:
- Adds a
reverseContinue
request. - Adds a
restart
request and a correspondingsupportsRestartRequest
capability. - Adds a
variablesReference
attribute 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
type
attribute to theSetVariableResponse
type. - Support to return a structured object from the
SetVariableRequest
. - Fine tuning of
Module
part of the protocol. - Adds optional attribute
evaluatable
toVariable
type. - Adds optional checksum support to
Source
type. - Adds optional source range to
Scope
type.
- Adds optional
- 1.13.x:
- Fix typo in
Capabilities
type. - Adds an optional
hitCondition
attribute to breakpoints and a correspondingsupportsHitConditionalBreakpoints
capability.
- Fix typo in
- 1.12.x:
- Adds a new optional attribute
frameId
to thecompletionRequest
. - Introduces a
runInTerminalRequest
so that a debug adapter can run a debuggee in a terminal managed by the frontend. - Adds a
type
attribute (and a value set) to theCompletionItem
.
- Adds a new optional attribute
- 1.11.x:
- Adds a new optional attribute
mimeType
to theSourceResponse
. - Adds a new optional attribute
sourceModified
to theSetBreakpointsArguments
that indicates that the underlying source has been modified which results in new breakpoint locations. - Adds a new optional attribute
supportsVariableType
toInitializeRequestArguments
. True indicates that the client shows the variable’s type attribute in the UI. - Adds optional ‘type’ attribute to the
EvaluateResponse
. - Introduces the
RestartFrameRequest
and a correspondingsupportsRestartFrame
capability. - Introduces a
ContinuedEvent
so 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
GotoTargetsRequest
andGotoRequest
, 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
stepBack
request and a correspondingsupportsStepBack
capability. - Introduces the type
Module
, aModuleRequest
, and aModuleEvent
- Introduces the
setVariableRequest
- Adds new optional attributes
type
andkind
for aVariable
. - Adds optional attributes
endLine
andendColumn
toStackFrame
andBreakpoint
types.
- Introduces a
- 1.9.x:
- Introduces a
allThreadsContinued
attribute on theContinueResponse
to indicate that all threads are continued and not only the one specified.
- Introduces a
- 1.8.x:
- Introduces
ExceptionBreakpointsFilter
and fixed corresponding capability. - Adds optional
noDebug
attribute toLaunchRequestArguments
. - Adds optional
startFrame
argument toStackTraceArguments
to allow for paging. - Adds optional
totalFrames
argument toStackTraceResponse
to allow for paging. - Improve comment:
InitializedEvent
must not be sent beforeInitializeRequest
has returned its result.
- Introduces
- 1.7.x:
- Adds optional
url
andurlLabel
attributes to the error messages. The frontend will show this as a UI to open additional information in a browser. - Added option
default
attribute to theexceptionBreakpointFilters
capability. - Adds optional attribute
allThreadsStopped
to theStoppedEvent
to indicate that all threads are stopped (and not only the one mentioned in the event).
- Adds optional
- 1.6.x:
- A boolean
supportsConditionalBreakpoints
inCapabilities
indicates whether the debug adapter supports conditional breakpoints. - Adds an optional
exceptionBreakpointFilters
capability that lists the filters available for thesetExceptionBreakpoints
request. - Adds an optional
restart
attribute to theTerminatedEvent
which can be used to request a restart of the debug session.
- A boolean
- 1.5.x:
- A boolean
supportsFunctionBreakpoints
inCapabilities
indicates whether the debug adapter implements the function breakpoints. - Renamed
supportEvaluateForHovers
inCapabilities
tosupportsEvaluateForHovers
.
- A boolean
- 1.4.x:
- Made the
body
of theInitializeResponse
optional (for backward compatibility).
- Made the
- 1.3.x: Version introduces support for feature negotiation.
- The
InitializeResponse
has now attributes for these features:- A boolean
supportsConfigurationDoneRequest
indicates whether the debug adapter implements theConfigurationDoneRequest
. - A boolean
supportEvaluateForHovers
indicates whether the debug adapter supports a side effect freeEvaluateRequest
.
- A boolean
- Adds an optional
data
attribute to theOutputEvent
and atelemetry
category. - Adds a new context type
hover
to thecontext
attribute of theEvaluateArguments
.
- The
- 1.2.x: Version adds a new request:
- Introduces a
ConfigurationDoneRequest
that 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
Source
supports optionalorigin
attribute to provide information that is shown in the debug UI. - Type
Source
supports an optionaladapterData
attribute that the VS Code debug UI will transparently persists for breakpoints. - Introduces type
SourceBreakpoint
that makes it possible to providecolumn
andcondition
information when specifying a breakpoint.
- Type
- 1.0.1: Initial version of the debug protocol