3

Adobe Director には、アプリケーションの実行中に更新される監視ウィンドウがあります。たとえば、ゲーム アプリケーションがあり、ボール オブジェクトのインスタンスを監視している場合、アプリケーションの実行中にリアルタイムで更新されるすべての値 (速度、高度、状態変数など) を確認できます。ウィンドウに他のオブジェクトを追加して、実行を停止せずにその変数にドリルダウンすることもできます。

Visual Studio (私は 2008 年)、C# で、アプリケーションの実行中に [デバッグ] > [ウォッチ] ウィンドウを更新する方法はありますか? つまり、すべてをフリーズして特定の瞬間の状態を検査するのではなく、アプリケーションの実行中に特定のオブジェクトのさまざまな変数を監視したいと考えています。

これが不可能な場合、任意のオブジェクトの値を監視する方法はあります (事前にこれらをハードコーディングする必要はありません)。たとえば、戦車オブジェクトの場合、位置、方向、速度などがあります。それぞれ数十程度の値を持つ数十の異なるタイプのゲーム オブジェクトを想定します。これらの値は 1 秒間に 60 回変化します。

目標は、実行時に「監視」するゲーム オブジェクトを選択し、変数の階層構造にドリルダウンできるようにすることです (ウォッチャー ペインと同じ方法で)。繰り返しますが、このツールは事前にオブジェクトを認識していないため、特定のオブジェクトをハードコーディングすることはできません。

前もって感謝します!

アダム

4

6 に答える 6

1

ブレークポイントを作成して右クリックし、ヒットイベントを選択して、そこに変数の印刷を設定します。これは機能します。

于 2009-07-14T15:58:26.137 に答える
1

これを行う方法はありません。

于 2009-10-14T16:00:56.827 に答える
0

あなたが説明しているように、デバッグウォッチウィンドウを継続的に更新するように設定できるかどうかはわかりません。TRACEアプリケーションの実行時にコンテンツを出力パネルに出力するマクロの使用を検討しましたか?

TRACE(_T("m_LocationX: %d\n"), m_LocationX);
TRACE(_T("m_LocationY: %d\n"), m_LocationY);

ステートメントが実行される頻度によってはTRACE、出力ウィンドウがフラッディングする可能性がありますが、少なくとも実行時に必要な情報が得られるはずです。


編集1: MFCを使用していない場合は、別の方法を説明しているこのStackOverflowの回答をご覧ください。

編集2:この質問をもう一度見てみると、C ++と.Netのどちらを使用しているかが明確ではありません-C#を使用している場合は、クラスDebugTraceクラスを使用して同様の結果を得ることができます-それらの使用法を説明する良い記事は次のようになりますここで見つかりました。

于 2009-08-10T22:25:42.233 に答える
0

これは役立つかもしれません:

http://msdn.microsoft.com/en-us/library/z4ecfxd9.aspx

自動プロパティ評価をオンまたはオフにするには

  1. [ツール] メニューの [オプション] をクリックします。
  2. [オプション] ダイアログ ボックスで、[デバッグ] ノードを開き、[一般] をクリックします。IDE の設定によっては、[デバッグ] ノードを表示するために [すべての設定を表示] を選択する必要がある場合があります。
  3. [プロパティの評価とその他の暗黙的な関数呼び出しを有効にする] を選択または選択解除します。
  4. [OK] をクリックします。
于 2009-05-09T20:59:07.853 に答える
0

デバッガーに割り込まずに監視する方法はわかりませんが、いくつかの異なるアプローチを使用できます。個人的には、Trace.Writeline などでトレースを使用します (カスタム ライブラリを使用します)。ただし、コンテンツを出力ウィンドウに出力するブレークポイントであるトレースポイントを使用して、簡単な解決策を得ることもできます。

簡単なグーグルがあり、この記事ではそれらを設定する方法の概要を説明しているようです。変数名を { } 内に配置すると、デバッガーに侵入することなく、出力ウィンドウに出力されます (ただし、舞台裏ではそれがまさにします)

それが役立つことを願っています

于 2009-05-09T21:15:55.800 に答える