The Debug Adapter runs in a separate Node.js process, which is spawned by VS Code when you debug Go code.
Please see the Debug Adapter Protocol (DAP) to understand how the Debug Adapter acts as an intermediary between VS Code and the debugger (Delve).
This codebase is currently in flux: We are working on using's Delve
's native DAP implementation instead of this one. Follow along with golang/vscode-go#23 for updates on that work.
Before you start working on your change, please read the Contribution guidelines. This document assumes that you are already familiar with the process of building, running, and sideloading the VS Code Go extension.
As a next step, you may want to debug the Debug Adapter, in order to understand how your change work with Delve
.
NOTE: Since the Debug Adapter runs in a separate process from the rest of the extension, the steps below only enable you to debug the Debug Adapter code, not the entire extension. To debug the entire extension, as well as the debug adapter, see the instructions below.
vscode-go
folder in VS Code.Launch as server
debug configuration.vscode-go/src/debugAdapter/goDebug.ts
file."debugServer": 4711
in the root of the configuration.goDebug.ts
file.You should take this step if your change modifies both the Debug Adapter and the main extension. This setup requires three instances of VS Code.
vscode-go
folder in one instance of VS Code.Launch Extension
debug target and run it (F5). This will launch the second instance of VS Code."debugServer": 4711
to the root of the configuration.vscode-go/src/debugAdapter
folder. In this instance, select the Launch as server
configuration and run it (F5).In some very rare cases, you may find it helpful to debug VS Code itself. Examples of such cases include veryfing workbench behavior and state before executing debug adapter API calls.
First, ensure that you can build and run VS Code from source successfully.
Next, follow these steps:
vscode-go
extension to the local instance of VS. This can be done by copying the contents of the vscode-go folder into $HOME/.vscode-oss-dev/extensions/ms-vscode.go
(the exact location may vary by OS).vscode
folder in Visual Studio Code.Launch VS Code
debug configuraion from the drop-down in the Run view. Add a breakpoints as needed.vscode-go
folder. Choose the Launch as server
debug configuration in the Run view. Add breakpoints as desired in the vscode-go/src/debugAdapter/goDebug.ts
file."debugServer": 4711
in the root.