ホームページ > バックエンド開発 > Golang > GoLand デバッガーが Go プログラムにアタッチされているかどうかを検出するにはどうすればよいですか?

GoLand デバッガーが Go プログラムにアタッチされているかどうかを検出するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-25 13:30:12
オリジナル
1006 人が閲覧しました

How Can I Detect if the GoLand Debugger is Attached to a Go Program?

実行中のプログラムでの GoLand デバッガーの存在の検出

Go では、System.Diagnostics.Debugger.IsAttached を使用してデバッガーの存在を検出できる C# とは異なり、直接的に相当するものはありません。これに対処する 1 つの方法は、delve デバッガーでビルド タグを活用することです。

ビルド タグの使用

2 つ作成しますファイル:

  • isdelve/delve.go:
// +build delve

package isdelve

const Enabled = true
ログイン後にコピー
  • isdelve/nodelve.go:
// +build !delve

package isdelve

const Enabled = false
ログイン後にコピー

でメイン プログラムで、isdelve パッケージをインポートし、Enabled 定数を確認します。

import "isdelve"

func main() {
    fmt.Println("delve", isdelve.Enabled)
}
ログイン後にコピー

GoLand でのビルド タグの有効化

GoLand で、「Run/Debug Configurations」に移動し、「Go」でツール引数' に次を追加します:

-tags=delve
ログイン後にコピー

これで、GoLand でプログラムを実行すると、 delve ビルド タグを有効にして、isdelve.Enabled 定数にアクセスできるようにします。

delve の set コマンドを使用する

または、デバッガーの起動後に delve の set コマンドを使用して変数を設定します。

dlv debug a.go
(dlv) set debug.enabled true
ログイン後にコピー

以上がGoLand デバッガーが Go プログラムにアタッチされているかどうかを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート