天天看點

golang調試工具Delve

  線上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

golang調試工具Delve

可以輸入help來看一下幫助文檔

golang調試工具Delve

很簡單的一些指令

  我們先打在main方法上打一個斷點:

golang調試工具Delve

 然後運作c 來運作到斷點,

golang調試工具Delve

在func li  裡打一個斷點,我們可以使用

或者使用   "檔案:行号"來打斷點

golang調試工具Delve

  現在執行continue 讓服務跑起來。通路一下我們的服務,看hi方法會不會停下來。

  看到了沒,在19号停下來了。

golang調試工具Delve

  輸入 n 回車,單步執行,

  輸入 print(别名p)輸出變量資訊  

  輸入 args 列印出所有的方法參數資訊

  輸入 locals 列印所有的本地變量

golang調試工具Delve

   其他的指令我就不在這裡給大家示範了,自己動動手試一下。

   先編譯一下我們的main.go然後去行main

golang調試工具Delve

  然後使用Delve附加到我們的項目上,先看一下我們的項目的pid

golang調試工具Delve

  在hi方法裡打斷點,然後執行c來等待斷點的執行。

  

  通路我們的伺服器,看一下斷點會不會被執行

golang調試工具Delve

  斷點執行了。然後調試你的代碼吧!