Go では、System.Diagnostics.Debugger.IsAttached を使用してデバッガーの存在を検出できる C# とは異なり、直接的に相当するものはありません。これに対処する 1 つの方法は、delve デバッガーでビルド タグを活用することです。
2 つ作成しますファイル:
// +build delve package isdelve const Enabled = true
// +build !delve package isdelve const Enabled = false
でメイン プログラムで、isdelve パッケージをインポートし、Enabled 定数を確認します。
import "isdelve" func main() { fmt.Println("delve", isdelve.Enabled) }
GoLand で、「Run/Debug Configurations」に移動し、「Go」でツール引数' に次を追加します:
-tags=delve
これで、GoLand でプログラムを実行すると、 delve ビルド タグを有効にして、isdelve.Enabled 定数にアクセスできるようにします。
または、デバッガーの起動後に delve の set コマンドを使用して変数を設定します。
dlv debug a.go (dlv) set debug.enabled true
以上がGoLand デバッガーが Go プログラムにアタッチされているかどうかを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。