プログラミングの分野では、プログラムがデバッガの監視下で実行されているかどうかを識別することが望ましいことがよくあります。 C# では、System.Diagnostics.Debugger.IsAttached を使用してこれを簡単に実現できます。しかし、Go では、特に GoLand デバッガーを使用する場合はどうでしょうか?
デバッグ フラグの探索
Go では、デバッガーの実行を識別するのは C# ほど簡単ではありません。ただし、賢明なアプローチには、ビルド タグを利用してデバッグ モードと非デバッグ モードを区別することが含まれます。 dlv の実行時に --build-flags 引数を利用すると、特定のタグを渡してデバッガーの存在を測定できます。
Delve による実装
このアプローチを実装するには、2つのGoソースを作成しますファイル:
これらのタグは、 isdelve パッケージは true (デバッグ モード) または false (非デバッグ モード) です。
メインの Go プログラムで、isdelve パッケージをインポートし、Enabled 定数をチェックしてデバッグ ステータスを確認します。
GoLand での設定
GoLand でこの機能を有効にするには、 「実行/デバッグ構成」に移動し、「Go ツールの引数」に -tags=delve を追加します。これにより、デバッグ フラグを使用してビルドするようにプログラムが構成されます。
外部デバッグ モード
非 GoLand 環境では、dlv debug --build-flags='-tags= を使用します。 delve' a.go は、指定されたデバッガーを呼び出します。 tags.
追加の代替手段
代替アプローチには、デバッガーの開始後に delve の set コマンドを使用して変数を手動で設定することが含まれます。これにより、特定のシナリオで柔軟性が向上します。
以上がGo プログラムがデバッガー (GoLand など) で実行されているかどうかを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。