線上golang服務出現問題時,Devle是必不少的線上調試工具,如果使用docker,也可以把Devle打進docker鏡像裡,調試代碼。
安裝Devle非常簡單,直接運作go get 即可:
如果你的go版本為1.5請先設定環境變量GO15VENDOREXPERIMENT=1再運作go get。我的go版本為1.10,不用設定。
先寫一個簡單的web服務,然後使用Devle來進行調試。
在$GOPATH/src/github.com/mytest 檔案夾下建立main.go
<a></a>
簡單吧,一個運作在8000端口上的web服務,通路 hi會傳回機器的名稱。上面代碼的行号是很有用的,等會我們打斷點的時候會用到。
使用Delve運作我們的main.go

可以輸入help來看一下幫助文檔
很簡單的一些指令
我們先打在main方法上打一個斷點:
然後運作c 來運作到斷點,
在func li 裡打一個斷點,我們可以使用
或者使用 "檔案:行号"來打斷點
現在執行continue 讓服務跑起來。通路一下我們的服務,看hi方法會不會停下來。
看到了沒,在19号停下來了。
輸入 n 回車,單步執行,
輸入 print(别名p)輸出變量資訊
輸入 args 列印出所有的方法參數資訊
輸入 locals 列印所有的本地變量
其他的指令我就不在這裡給大家示範了,自己動動手試一下。
先編譯一下我們的main.go然後去行main
然後使用Delve附加到我們的項目上,先看一下我們的項目的pid
在hi方法裡打斷點,然後執行c來等待斷點的執行。
通路我們的伺服器,看一下斷點會不會被執行
斷點執行了。然後調試你的代碼吧!