ホームページ > バックエンド開発 > Golang > Go プログラムで GoLand デバッガーを検出する方法はありますか?

Go プログラムで GoLand デバッガーを検出する方法はありますか?

Susan Sarandon
リリース: 2024-11-29 07:52:10
オリジナル
145 人が閲覧しました

Is There a Way to Detect the GoLand Debugger in Go Programs?

Go プログラムでの Delve デバッガーの検出

場合によっては、Go プログラムが GoLand デバッガーで実行されているかどうかを判断すると有利な場合があります。 。 C# では、System.Diagnostics.Debugger.IsAttached プロパティがこの機能を提供します。

Go に同等のものはありますか?

いいえ、現在ビルトインはありませんのようなデバッガの存在を検出する Go のメソッドC#.

ビルド タグを使用した回避策

ただし、ビルド タグを使用して回避策が可能です。 Delve デバッガーの実行中にビルド タグを設定すると、コード内にビルド タグが存在するかどうかを確認できます。

  1. 2 つのファイルを作成します:

    • isdelve/delve .go (delve 実行時のタグを定義)
    • isdelve/nodelve.go (delve が実行されていないときにタグを定義します)
  2. a.go で次を追加します:

    import (
        "isdelve"
        "fmt"
    )
    
    func main() {
        fmt.Println("delve", isdelve.Enabled)
    }
    ログイン後にコピー
  3. GoLand でビルドを有効にします「Go ツール」に -tags=delve を追加して、「実行/デバッグ構成」の下にタグを追加します。引数:'.
  4. これで、delve デバッガーが実行されているかどうかを確認できます。

    • go run a.go が delve false を報告する場合、実行されていません。
    • dlv debug --build-flags='-tags=delve' a.go が delve true を報告する場合、

delve の set コマンドの使用

代わりに、delve は、実行後に手動で変数を設定する set コマンドを提供します。デバッガーを開始しています。

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

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