A go debugger for atom using delve.
Install
Either apm install go-debug
or search for go-debug
in the settings.
Install delve
go-debug
tries to install/download delve automatically.
If this fails you can still do it manually by using this guide: https://github.com/derekparker/delve/tree/master/Documentation/installation
Usage
Use F5 to launch the debug window (the one on the right).
At selected line press F9 to set (or toggle) break point.
other function keys.
Configuration
go-debug
has two built-in configurations. Both work on the file/package that is currently open in atom.
Debug
: compile and debug the current packageTest
: compile and debug the tests of the current package
It's possible to create additional configurations by creating a file and setting the path in the go-debug
setting Configuration File
. You can even specify multiple configurations by separating the paths in this setting with commas. Relative paths will be resolved relative to the current project.
Such a configuration file looks like:
{
"configurations": [
{ },
{ },
]
}
Each configuration supports the following options:
{
"name": "...",
"mode": "debug" | "test" | "remote" | "exec",
"args": ["..."],
"env": { "<key>": "<value>" },
"cwd": "<dir>",
"host": "localhost",
"port": 2345,
"program": "<path>",
"buildFlags": "",
"init": "<path>",
"showLog": true | false
}
All string options can make use of the following variables by using ${...}
somewhere inside the string:
{
cwd: "...",
file: "...",
fileBasename: "...",
fileDirname: "...",
fileExtname: "...",
relativeFile: "...",
workspaceRoot: "...",
env: { "<key>": "<value>" }
}
Note: go-debug
also supports the configuration for vscode which are stored in .vscode/launch.json
. But be aware that not all configurations might work!
Examples
Always debug the cmd
of your program wherever you are right now in your code and add some arguments and environment variables:
{
"name": "Debug cmd",
"mode": "debug",
"cwd": "${workspaceRoot}/cmd",
"args": ["--connection=sql"],
"env": {
"USER": "ROOT",
"PW": "SECRET!"
}
}
Start tests with verbose flag:
{
"name": "Verbose Test",
"mode": "test",
"args": ["-test.v"]
}
Key bindings
f5
starts the current selected configurationshift-f5
restarts the current delve session (r / restart
)f6
stops delve (exit / quit / q
)f8
continue the execution (c / continue
)f9
toggle breakpointf10
step over to next source line (n / next
)f11
step into functions (s / step
)shift-f11
step out of functions (stepOut
)cmd-k cmd-g
(mac) / ctrl-k ctrl-g
(others) toggles the main panel
Links
- Gopher community on slack:
Questions? Use the go-plus
channel or send me direct messages