package dap

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Debug_protocolSource

The Debug Adapter Protocol defines the protocol used between an editor or IDE and a debugger or runtime.

Sourcemodule type JSONABLE = sig ... end
Sourcemodule type EVENT = sig ... end
Sourcemodule type COMMAND = sig ... end
Sourcemodule Any : sig ... end
Sourcemodule Empty_dict : sig ... end
Sourcemodule Int_or_string : sig ... end
Sourcemodule Dict : sig ... end
Sourcemodule String_dict : sig ... end
Sourcemodule String_opt_dict : sig ... end
Sourcemodule Protocol_message : sig ... end
Sourcemodule Request : sig ... end
Sourcemodule Event : sig ... end
Sourcemodule Response : sig ... end
Sourcemodule Message : sig ... end
Sourcemodule Error_response : sig ... end
Sourcemodule Column_descriptor : sig ... end
Sourcemodule Checksum_algorithm : sig ... end
Sourcemodule Breakpoint_mode : sig ... end
Sourcemodule Capabilities : sig ... end
Sourcemodule Module : sig ... end
Sourcemodule Thread : sig ... end
Sourcemodule Checksum : sig ... end
Sourcemodule Source : sig ... end
Sourcemodule Stack_frame : sig ... end
Sourcemodule Scope : sig ... end
Sourcemodule Variable : sig ... end
Sourcemodule Breakpoint_location : sig ... end
Sourcemodule Source_breakpoint : sig ... end
Sourcemodule Function_breakpoint : sig ... end
Sourcemodule Data_breakpoint : sig ... end
Sourcemodule Instruction_breakpoint : sig ... end
Sourcemodule Breakpoint : sig ... end
Sourcemodule Stepping_granularity : sig ... end
Sourcemodule Step_in_target : sig ... end
Sourcemodule Goto_target : sig ... end
Sourcemodule Completion_item_type : sig ... end
Sourcemodule Completion_item : sig ... end
Sourcemodule Value_format : sig ... end
Sourcemodule Stack_frame_format : sig ... end
Sourcemodule Exception_filter_options : sig ... end
Sourcemodule Exception_path_segment : sig ... end
Sourcemodule Exception_break_mode : sig ... end
Sourcemodule Exception_options : sig ... end
Sourcemodule Exception_details : sig ... end
Sourcemodule Disassembled_instruction : sig ... end
Sourcemodule Invalidated_areas : sig ... end
Sourcemodule Initialized_event : sig ... end
Sourcemodule Stopped_event : sig ... end
Sourcemodule Continued_event : sig ... end
Sourcemodule Exited_event : sig ... end
Sourcemodule Terminated_event : sig ... end
Sourcemodule Thread_event : sig ... end
Sourcemodule Output_event : sig ... end
Sourcemodule Breakpoint_event : sig ... end
Sourcemodule Module_event : sig ... end
Sourcemodule Loaded_source_event : sig ... end
Sourcemodule Process_event : sig ... end
Sourcemodule Capabilities_event : sig ... end
Sourcemodule Progress_start_event : sig ... end
Sourcemodule Progress_update_event : sig ... end
Sourcemodule Progress_end_event : sig ... end
Sourcemodule Invalidated_event : sig ... end
Sourcemodule Memory_event : sig ... end
Sourcemodule Cancel_command : sig ... end

The `cancel` request is used by the client in two situations:

Sourcemodule Run_in_terminal_command : sig ... end

This request is sent from the debug adapter to the client to run a command in a terminal. This is typically used to launch the debuggee in a terminal provided by the client. This request should only be called if the corresponding client capability `supportsRunInTerminalRequest` is true. Client implementations of `runInTerminal` are free to run the command however they choose including issuing the command to a command line interpreter (aka 'shell'). Argument strings passed to the `runInTerminal` request must arrive verbatim in the command to be run. As a consequence, clients which use a shell are responsible for escaping any special shell characters in the argument strings to prevent them from being interpreted (and modified) by the shell. Some users may wish to take advantage of shell processing in the argument strings. For clients which implement `runInTerminal` using an intermediary shell, the `argsCanBeInterpretedByShell` property can be set to true. In this case the client is requested not to escape any special shell characters in the argument strings.

Sourcemodule Start_debugging_command : sig ... end

This request is sent from the debug adapter to the client to start a new debug session of the same type as the caller. This request should only be sent if the corresponding client capability `supportsStartDebuggingRequest` is true. A client implementation of `startDebugging` should start a new debug session (of the same type as the caller) in the same way that the caller's session was started. If the client supports hierarchical debug sessions, the newly created session can be treated as a child of the caller session.

Sourcemodule Initialize_command : sig ... end

The `initialize` request is sent as the first request from the client to the debug adapter in order to configure it with client capabilities and to retrieve capabilities from the debug adapter. Until the debug adapter has responded with an `initialize` response, the client must not send any additional requests or events to the debug adapter. In addition the debug adapter is not allowed to send any requests or events to the client until it has responded with an `initialize` response. The `initialize` request may only be sent once.

This request indicates that the client has finished initialization of the debug adapter. So it is the last request in the sequence of configuration requests (which was started by the `initialized` event). Clients should only call this request if the corresponding capability `supportsConfigurationDoneRequest` is true.

Sourcemodule Launch_command : sig ... end

This launch request is sent from the client to the debug adapter to start the debuggee with or without debugging (if `noDebug` is true). Since launching is debugger/runtime specific, the arguments for this request are not part of this specification.

Sourcemodule Attach_command : sig ... end

The `attach` request is sent from the client to the debug adapter to attach to a debuggee that is already running. Since attaching is debugger/runtime specific, the arguments for this request are not part of this specification.

Sourcemodule Restart_command : sig ... end

Restarts a debug session. Clients should only call this request if the corresponding capability `supportsRestartRequest` is true. If the capability is missing or has the value false, a typical client emulates `restart` by terminating the debug adapter first and then launching it anew.

Sourcemodule Disconnect_command : sig ... end

The `disconnect` request asks the debug adapter to disconnect from the debuggee (thus ending the debug session) and then to shut down itself (the debug adapter). In addition, the debug adapter must terminate the debuggee if it was started with the `launch` request. If an `attach` request was used to connect to the debuggee, then the debug adapter must not terminate the debuggee. This implicit behavior of when to terminate the debuggee can be overridden with the `terminateDebuggee` argument (which is only supported by a debug adapter if the corresponding capability `supportTerminateDebuggee` is true).

Sourcemodule Terminate_command : sig ... end

The `terminate` request is sent from the client to the debug adapter in order to shut down the debuggee gracefully. Clients should only call this request if the capability `supportsTerminateRequest` is true. Typically a debug adapter implements `terminate` by sending a software signal which the debuggee intercepts in order to clean things up properly before terminating itself. Please note that this request does not directly affect the state of the debug session: if the debuggee decides to veto the graceful shutdown for any reason by not terminating itself, then the debug session just continues. Clients can surface the `terminate` request as an explicit command or they can integrate it into a two stage Stop command that first sends `terminate` to request a graceful shutdown, and if that fails uses `disconnect` for a forceful shutdown.

The `breakpointLocations` request returns all possible locations for source breakpoints in a given range. Clients should only call this request if the corresponding capability `supportsBreakpointLocationsRequest` is true.

Sourcemodule Set_breakpoints_command : sig ... end

Sets multiple breakpoints for a single source and clears all previous breakpoints in that source. To clear all breakpoint for a source, specify an empty array. When a breakpoint is hit, a `stopped` event (with reason `breakpoint`) is generated.

Replaces all existing function breakpoints with new function breakpoints. To clear all function breakpoints, specify an empty array. When a function breakpoint is hit, a `stopped` event (with reason `function breakpoint`) is generated. Clients should only call this request if the corresponding capability `supportsFunctionBreakpoints` is true.

The request configures the debugger's response to thrown exceptions. Each of the `filters`, `filterOptions`, and `exceptionOptions` in the request are independent configurations to a debug adapter indicating a kind of exception to catch. An exception thrown in a program should result in a `stopped` event from the debug adapter (with reason `exception`) if any of the configured filters match. Clients should only call this request if the corresponding capability `exceptionBreakpointFilters` returns one or more filters.

Obtains information on a possible data breakpoint that could be set on an expression or variable. Clients should only call this request if the corresponding capability `supportsDataBreakpoints` is true.

Replaces all existing data breakpoints with new data breakpoints. To clear all data breakpoints, specify an empty array. When a data breakpoint is hit, a `stopped` event (with reason `data breakpoint`) is generated. Clients should only call this request if the corresponding capability `supportsDataBreakpoints` is true.

Replaces all existing instruction breakpoints. Typically, instruction breakpoints would be set from a disassembly window. To clear all instruction breakpoints, specify an empty array. When an instruction breakpoint is hit, a `stopped` event (with reason `instruction breakpoint`) is generated. Clients should only call this request if the corresponding capability `supportsInstructionBreakpoints` is true.

Sourcemodule Continue_command : sig ... end

The request resumes execution of all threads. If the debug adapter supports single thread execution (see capability `supportsSingleThreadExecutionRequests`), setting the `singleThread` argument to true resumes only the specified thread. If not all threads were resumed, the `allThreadsContinued` attribute of the response should be set to false.

Sourcemodule Next_command : sig ... end

The request executes one step (in the given granularity) for the specified thread and allows all other threads to run freely by resuming them. If the debug adapter supports single thread execution (see capability `supportsSingleThreadExecutionRequests`), setting the `singleThread` argument to true prevents other suspended threads from resuming. The debug adapter first sends the response and then a `stopped` event (with reason `step`) after the step has completed.

Sourcemodule Step_in_command : sig ... end

The request resumes the given thread to step into a function/method and allows all other threads to run freely by resuming them. If the debug adapter supports single thread execution (see capability `supportsSingleThreadExecutionRequests`), setting the `singleThread` argument to true prevents other suspended threads from resuming. If the request cannot step into a target, `stepIn` behaves like the `next` request. The debug adapter first sends the response and then a `stopped` event (with reason `step`) after the step has completed. If there are multiple function/method calls (or other targets) on the source line, the argument `targetId` can be used to control into which target the `stepIn` should occur. The list of possible targets for a given source line can be retrieved via the `stepInTargets` request.

Sourcemodule Step_out_command : sig ... end

The request resumes the given thread to step out (return) from a function/method and allows all other threads to run freely by resuming them. If the debug adapter supports single thread execution (see capability `supportsSingleThreadExecutionRequests`), setting the `singleThread` argument to true prevents other suspended threads from resuming. The debug adapter first sends the response and then a `stopped` event (with reason `step`) after the step has completed.

Sourcemodule Step_back_command : sig ... end

The request executes one backward step (in the given granularity) for the specified thread and allows all other threads to run backward freely by resuming them. If the debug adapter supports single thread execution (see capability `supportsSingleThreadExecutionRequests`), setting the `singleThread` argument to true prevents other suspended threads from resuming. The debug adapter first sends the response and then a `stopped` event (with reason `step`) after the step has completed. Clients should only call this request if the corresponding capability `supportsStepBack` is true.

Sourcemodule Reverse_continue_command : sig ... end

The request resumes backward execution of all threads. If the debug adapter supports single thread execution (see capability `supportsSingleThreadExecutionRequests`), setting the `singleThread` argument to true resumes only the specified thread. If not all threads were resumed, the `allThreadsContinued` attribute of the response should be set to false. Clients should only call this request if the corresponding capability `supportsStepBack` is true.

Sourcemodule Restart_frame_command : sig ... end

The request restarts execution of the specified stack frame. The debug adapter first sends the response and then a `stopped` event (with reason `restart`) after the restart has completed. Clients should only call this request if the corresponding capability `supportsRestartFrame` is true.

Sourcemodule Goto_command : sig ... end

The request sets the location where the debuggee will continue to run. This makes it possible to skip the execution of code or to execute code again. The code between the current location and the goto target is not executed but skipped. The debug adapter first sends the response and then a `stopped` event with reason `goto`. Clients should only call this request if the corresponding capability `supportsGotoTargetsRequest` is true (because only then goto targets exist that can be passed as arguments).

Sourcemodule Pause_command : sig ... end

The request suspends the debuggee. The debug adapter first sends the response and then a `stopped` event (with reason `pause`) after the thread has been paused successfully.

Sourcemodule Stack_trace_command : sig ... end

The request returns a stacktrace from the current execution state of a given thread. A client can request all stack frames by omitting the startFrame and levels arguments. For performance-conscious clients and if the corresponding capability `supportsDelayedStackTraceLoading` is true, stack frames can be retrieved in a piecemeal way with the `startFrame` and `levels` arguments. The response of the `stackTrace` request may contain a `totalFrames` property that hints at the total number of frames in the stack. If a client needs this total number upfront, it can issue a request for a single (first) frame and depending on the value of `totalFrames` decide how to proceed. In any case a client should be prepared to receive fewer frames than requested, which is an indication that the end of the stack has been reached.

Sourcemodule Scopes_command : sig ... end

The request returns the variable scopes for a given stack frame ID.

Sourcemodule Variables_command : sig ... end

Retrieves all child variables for the given variable reference. A filter can be used to limit the fetched children to either named or indexed children.

Sourcemodule Set_variable_command : sig ... end

Set the variable with the given name in the variable container to a new value. Clients should only call this request if the corresponding capability `supportsSetVariable` is true. If a debug adapter implements both `setVariable` and `setExpression`, a client will only use `setExpression` if the variable has an `evaluateName` property.

Sourcemodule Source_command : sig ... end

The request retrieves the source code for a given source reference.

Sourcemodule Threads_command : sig ... end

The request retrieves a list of all threads.

Sourcemodule Terminate_threads_command : sig ... end

The request terminates the threads with the given ids. Clients should only call this request if the corresponding capability `supportsTerminateThreadsRequest` is true.

Sourcemodule Modules_command : sig ... end

Modules can be retrieved from the debug adapter with this request which can either return all modules or a range of modules to support paging. Clients should only call this request if the corresponding capability `supportsModulesRequest` is true.

Sourcemodule Loaded_sources_command : sig ... end

Retrieves the set of all sources currently loaded by the debugged process. Clients should only call this request if the corresponding capability `supportsLoadedSourcesRequest` is true.

Sourcemodule Evaluate_command : sig ... end

Evaluates the given expression in the context of a stack frame. The expression has access to any variables and arguments that are in scope.

Sourcemodule Set_expression_command : sig ... end

Evaluates the given `value` expression and assigns it to the `expression` which must be a modifiable l-value. The expressions have access to any variables and arguments that are in scope of the specified frame. Clients should only call this request if the corresponding capability `supportsSetExpression` is true. If a debug adapter implements both `setExpression` and `setVariable`, a client uses `setExpression` if the variable has an `evaluateName` property.

Sourcemodule Step_in_targets_command : sig ... end

This request retrieves the possible step-in targets for the specified stack frame. These targets can be used in the `stepIn` request. Clients should only call this request if the corresponding capability `supportsStepInTargetsRequest` is true.

Sourcemodule Goto_targets_command : sig ... end

This request retrieves the possible goto targets for the specified source location. These targets can be used in the `goto` request. Clients should only call this request if the corresponding capability `supportsGotoTargetsRequest` is true.

Sourcemodule Completions_command : sig ... end

Returns a list of possible completions for a given caret position and text. Clients should only call this request if the corresponding capability `supportsCompletionsRequest` is true.

Sourcemodule Exception_info_command : sig ... end

Retrieves the details of the exception that caused this event to be raised. Clients should only call this request if the corresponding capability `supportsExceptionInfoRequest` is true.

Sourcemodule Read_memory_command : sig ... end

Reads bytes from memory at the provided location. Clients should only call this request if the corresponding capability `supportsReadMemoryRequest` is true.

Sourcemodule Write_memory_command : sig ... end

Writes bytes to memory at the provided location. Clients should only call this request if the corresponding capability `supportsWriteMemoryRequest` is true.

Sourcemodule Disassemble_command : sig ... end

Disassembles code stored at the provided location. Clients should only call this request if the corresponding capability `supportsDisassembleRequest` is true.

Sourcemodule Locations_command : sig ... end

Looks up information about a location reference previously returned by the debug adapter.