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 package
Test: 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 configuration
shift-f5 restarts the current delve session (r / restart)
f6 stops delve (exit / quit / q)
f8 continue the execution (c / continue)
f9 toggle breakpoint
f10 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