2016-03-21 6 views
1

プログラム内のすべてのオブジェクト(少なくとも1つの参照を含む)を検査したい場合、プログラムの実行が一時停止されている(ブレークポイントなどを介して)いつでも実行したい。デバッガを介して監視するプログラム全体

Watch of Parallelウォッチに変数(オブジェクト)を追加すると、実行中のプログラムのどの部分も変数と同じスコープ内にない限り、それを検査することはできません。

任意のスコープで変数(オブジェクト)をグローバルに検査するにはどうすればよいですか?

プログラムの開始時(または最初に定義されたとき)から実行終了時まで変数をトラッキングするにはどうすればよいですか?

私が取り組んでいるプロジェクトでは、各オブジェクトには、一番上のオブジェクトであるフォームからの直接的または間接的な参照があります。私はいつもそれを調べることができます、私は私のプログラム内の他のオブジェクトにアクセスするだろう。

どうすればよいですか?プログラマがプログラムの全体をいつでも(実行が一時停止されたとき)分析できるようにしないと、(単純な)方法が必要です。

[質問を2倍にする申し訳ありませんが、私は古いものを削除し、私はこの1つはより明確であると思います。]

+0

あなたが検査しようとしているオブジェクトのより具体的な例がありますか?あなたが現在範囲にないものを検査したいと思うように思えますが、それは実際には意味がありません。 (例えば、現在実行されていない関数内の変数) – David

+0

私はいくつかの厄介な問題があり、それは何らかの参照問題に関連しています。私は他のオブジェクトの束によって参照されるオブジェクトを持っています(または少なくともそれはすべきです)。何時間もかかる可能性のあるコードを分析するのではなく、私がすでにやり遂げたことと失敗したことを、単純にプログラムを実行して、私が興味を持っているすべての変数を列挙し、さえ問題です。私はこれがボタンのクリックでできることではないことに非常に驚いています。それはかなりパワフルで、場合によっては重要なデバッグオプションのように思えます。 – Karlovsky120

+0

''私が関心を持っているすべての変数をリストします " - そして、IDEはどの変数がその基準を満たしているかを知っていますか?私はこの機能が存在しないことに全く驚いていません。 – David

答えて

4

変数がスコープ内にある場合、ウォッチ/ローカルウィンドウで追跡する変数を右クリックし、「オブジェクトIDを作成」を選択します。別のスコープにいるときでも、変数によって参照されるオブジェクトの値が表示されます。詳細については、this blog postを参照してください。

+0

あなたはそれを見てもらいますか?簡単な方法があります。大変ありがとうございました、あなたは大きな助けになりました。 =) – Karlovsky120

-1

あなたはそれが現在のプログラムでインスタンス化されるすべての属性が含まれてアクセスすることができLocalsと呼ばれるウィンドウがあります。 デバッグ時に、[デバッグ] - [Windows] - [ローカル]メニューから開くことができます。

+1

地元の人は、彼が望む範囲外の変数を追跡しません。 – Jacobr365

+1

その場合、唯一の方法はアドレスレベルのデバッグとメモリの追跡を直接有効にすることだと思いますが、これはあまり簡単ではありません。 また、オブジェクトIDを作成することもできますが、これは宣言された変数に対してのみ機能し、各IDを自分で作成する必要があります。 –

+0

私は、プログラム全体を通して、あるいは少なくとも変数初期化から、単一の変数を追跡する簡単な方法はないとは思いません。 – Karlovsky120

関連する問題