ホームページ > バックエンド開発 > Golang > C# の `Debugger.IsAttached` のような GoLand デバッガーの添付ファイルを検出できますか?

C# の `Debugger.IsAttached` のような GoLand デバッガーの添付ファイルを検出できますか?

Susan Sarandon
リリース: 2024-12-06 05:22:09
オリジナル
895 人が閲覧しました

Can Go Detect GoLand Debugger Attachment Like C#'s `Debugger.IsAttached`?

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

C# では、実行中のプログラムは、「System.Diagnostics.Debugger.IsAttached」メソッドを通じてデバッガーの監視下にあるかどうかを識別できます。 .

Go でも同様の機能を実現できますか?これは、コードのデバッグ中にタイムアウトを無効にする場合に特に望ましいです。

特に、この質問は GoLand デバッガーの使用のコンテキストで発生します。

解決策

使用建てるタグ:

  1. 2 つの Go ソース ファイル「isdelve/delve.go」と「isdelve/nodelve.go」を作成します。
  2. 「isdelve/delve」 .go」に次のビルドを追加しますタグ:

    // +build delve
    ログイン後にコピー
  3. 「isdelve/nodelve.go」に、次のビルド タグを追加します:

    // +build !delve
    ログイン後にコピー
  4. 「」を追加package isdelve」を両方のファイルに宣言し、「Enabled」を宣言します。定数:

    package isdelve
    
    const Enabled = true
    
    // or
    
    package isdelve
    
    const Enabled = false
    ログイン後にコピー
  5. 「isdelve」パッケージをインポートする 3 番目の Go ファイル「a.go」を作成します:

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

設定中GoLand:

  1. GoLand で「実行/デバッグ構成」ウィンドウを開きます。
  2. 「Go ツール引数」に「-tags=delve」を追加します。

使用法:

  • GoLand の外部で "go run a.go" を実行すると、プログラムは "delve false" を報告します。
  • dlv を使用してデバッグする場合は、「dlv debug」を使用します--build-flags='-tags=delve' 行ってください。」これにより、「delve true」が報告されます。

代替:

あるいは、delve の "set" コマンドは、デバッガの起動後に手動で変数を設定できます。

以上がC# の `Debugger.IsAttached` のような GoLand デバッガーの添付ファイルを検出できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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