首頁 > 後端開發 > Golang > 如何檢測GoLand調試器是否在我的Go程式中運行?

如何檢測GoLand調試器是否在我的Go程式中運行?

Barbara Streisand
發布: 2024-12-03 09:31:14
原創
480 人瀏覽過

How Can I Detect if the GoLand Debugger is Running in My Go Program?

如何偵測程式中正在執行的 GoLand 偵錯器

在託管語言中進行偵錯時,人們可能希望停用某些計時行為或執行替代程式碼路徑。 C# 為此提供了 System.Diagnostics.Debugger.IsAttached。但是我們如何在 Go 中做到這一點?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板