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 關注
- 243 瀏覽
添加回答
舉報