在託管語言中進行偵錯時,人們可能希望停用某些計時行為或執行替代程式碼路徑。 C# 為此提供了 System.Diagnostics.Debugger.IsAttached。但是我們如何在 Go 中做到這一點?
雖然Go 中沒有直接等效於Debugger.IsAttached,但您可以使用構建標籤間接檢測調試器的存在.
第1 步:建立兩個Helper檔案
isdelve/delve.go(啟用偵錯時):
// +build delve package isdelve const Enabled = true
isdelve/nodelve.go(未啟用調試時)啟用:
// +build !delve package isdelve const Enabled = false
第2 步驟:檢查主程式中的建置標籤
import ( "fmt" "isdelve" ) func main() { fmt.Println("Debugging:", isdelve.Enabled) }
第3 步:設定Goland
在GoLand的「運作/偵錯」中設定」窗口,在「Go 工具參數」下新增:
-tags=delve
使用Goland進行偵錯時,Enabled 將設為true。 dlv,請使用:
這會將Enabled 設定為true。
這將設定一個全域啟用的變量,您可以檢查該變數在你的程式碼中。以上是如何檢測GoLand調試器是否在我的Go程式中運行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!