2 回答

TA贡献1757条经验 获得超8个赞
Delve 当前无法重新加载您正在运行的已编译代码,同时保留您的状态(如断点和跟踪)。您可以做的最好的事情可能是在 Delve 中使用“source”命令。比如debug.txt在本地目录下放一个叫的文件,可以添加:
break foo.go:171
on 1 print myVar
..然后回到dlv debug:
$ dlv debug
Type 'help' for list of commands.
(dlv) source debug.txt
Breakpoint 1 set at 0x1b0f5e5 for /path/to/foo.MyFunction() ./foo.go:171
(dlv)
您配置的断点已加载。
这不是一个完美的解决方案,我想念 gdb 的行为,所以我创建了一个 GitHub 问题来开始讨论:https ://github.com/go-delve/delve/issues/1551

TA贡献1859条经验 获得超6个赞
~~猜你正在寻找像这样的实时代码重载~~
~~ https://github.com/codegangsta/gin ~~
1 如果你想在不退出 vim 的情况下进行调试,那么:
:new | 0read ! dlv debug #
就可以了。2 如果您希望不断加载 dlv 模式,您可以将 tmux 与拆分窗格一起使用。一个面板打开 vim 和你的文件,另一个面板运行 dlv。当您在 vim 中更改文件时(在窗格中)delve(在伴随窗格中)重新加载此文件以进行调试。
3 如果您只想在保存文件时运行调试,请在第一个命令前添加前缀
autocmd BufWritePre Filetype go
并将其添加到您的virmc
.
如果您正在寻找每次进行更改时都会重建可执行文件的命令,我认为您来错地方了,调试并不意味着重建可执行文件。完成调试后,您可以检查您的应用程序并运行命令(go build
调用它的某些变体或某些包装器)。构建您的可执行文件。
- 2 回答
- 0 关注
- 195 浏览
添加回答
举报