首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在金刚dlv中重新加载源文件

如何在金刚dlv中重新加载源文件
EN

Stack Overflow用户
提问于 2018-08-19 14:41:08
回答 2查看 2.2K关注 0票数 2

我正在使用dlv来调试golang源代码。有什么命令可以在修改源代码后重新加载程序吗?我已经在网上搜索了dlv文档,但是没有找到任何关于如何做到这一点的东西。

任何帮助都将不胜感激。

环境: centos

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-15 20:24:41

目前,have还没有一种方法来重新加载正在运行的编译代码,同时保持您的状态,比如断点和跟踪。也许你能做的最好的事情就是在Delve中使用"source“命令。例如,如果将名为debug.txt的文件放入本地目录,则可以添加:

代码语言:javascript
复制
break foo.go:171
on 1 print myVar

..and回到dlv debug

代码语言:javascript
复制
$ 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

票数 4
EN

Stack Overflow用户

发布于 2018-08-20 01:28:44

~~猜测您正在寻找像这样的实时代码重新加载。

~~ 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的一些变体或调用它的包装器)。来构建可执行文件。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51918763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档