如何在golang dlv中重新加载源文件

我正在使用 dlv 调试 golang 源代码。有没有修改源代码后重新加载程序的命令?我在网上和 dlv 文档中进行了搜索,但没有找到有关如何执行此操作的任何信息。

任何帮助将不胜感激。

环境:centos


守着一只汪
浏览 149回答 2
2回答

陪伴而非守候

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

慕丝7291255

~~猜你正在寻找像这样的实时代码重载~~~~ 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调用它的某些变体或某些包装器)。构建您的可执行文件。
打开App,查看更多内容
随时随地看视频慕课网APP