2017-12-19 11 views
1

GoLandデバッガがプログラムで実行されているかどうかを確認する方法はありますか?それは使用して、デバッガで実行している場合は、実行中のプログラムを検出することができますC#の場合

System.Diagnostics.Debugger.IsAttached 

は、移動中に相当するものはありますか?私はコードを踏んでいる間、私は無効にしたいと思うタイムアウトがあります。ありがとう!

私はGoLandデバッガを使用しています。

+2

どのデバッガを使用していますか? – Adrian

+1

"Goに相当するものはありますか?"一つは望んでいないだろう。コードは、デバッグしていないときと同じように動作する必要があります。そうしないと、正しくデバッグできません。 – Flimzy

+0

ありがとう@Adrian、私は質問を更新しました。 –

答えて

1

私が知る限り、説明した方法でこれを行う組み込みの方法はありません。しかし、デベロッパーデバッガーが動作していることを示すビルドタグを使用して、多かれ少なかれ同じことを行うことができます。 --build-flags引数を使用してdlvにビルドタグを渡すことができます。を報告しますgo run a.goを実行

package main 

import (
    "isdelve" 
    "fmt" 
) 

func main() { 
    fmt.Println("delve", isdelve.Enabled) 
} 

// +build !delve 

package isdelve 

const Enabled = false 

a.go:私はHow can I check if the race detector is enabled at runtime?

isdelve/delve.go

// +build delve 

package isdelve 

const Enabled = true 

isdelve/nodelve.goを説明したように、これは基本的に同じ手法であります、実行中
dlv debug --build-flags='-tags=delve' a.godelve trueと報告されます。

GoLandユーザーインターフェイスのどこかにそのフラグを渡す必要があります。私はGoLandに精通していないので、特にその部分であなたを手伝うことはできません。


また、手動でデバッガを起動した後、変数を設定するために掘り下げるのsetコマンドを使用することができます。

関連する問題