亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

Go
守著一只汪 2023-03-21 16:01:55
我正在使用 dlv 調試 golang 源代碼。有沒有修改源代碼后重新加載程序的命令?我在網上和 dlv 文檔中進行了搜索,但沒有找到有關如何執行此操作的任何信息。任何幫助將不勝感激。環境:centos
查看完整描述

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


查看完整回答
反對 回復 2023-03-21
?
慕絲7291255

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調用它的某些變體或某些包裝器)。構建您的可執行文件。


查看完整回答
反對 回復 2023-03-21
  • 2 回答
  • 0 關注
  • 243 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號