3

私はゲームのような小さなテトリスであるプログラムを持っています。一部の構成で衝突検出器に問題があり、デバッグしたいのですが、ゲームが「問題のある」状態で開始されません。ゲームをその状態にして、デバッグを開始するのは彼らだけです。衝突検出器は非常に頻繁に実行されるため、問題のある状態に達した後にのみ実行されることがわかっている場所にブレークポイントを設定することはできません。また、デバッグプロセスはゲームウィンドウからフォーカスを取得し、指定することはできません。キーボードで入力します。

Visual Studio 2012を使用して、しばらくしてからデバッガーを開始する方法はありますか?開始時にブレークポイントを無視し、指示した後でのみ、ブレークポイントでブレークし始めますか?

4

4 に答える 4

5

はい。これを行うには、デバッグせずに開始し、目的の状態になったら、[デバッグ]メニューを使用して[プロセスにアタッチ]を選択します。リストが表示されたら、アプリケーションをダブルクリックします。

もう1つの可能な解決策は、ブレークポイントを無効にしてから、目的の状態(デバッグを開始した状態)になったら、[ブレークポイント]ウィンドウで目的のブレークポイントを有効にすることです。

于 2013-03-26T21:48:01.193 に答える
2

ゲームが問題のある構成に入るのを確認したら、ボタンまたはショートカットを追加して、デバッガーブレークを手動でトリガーできます。

System.Diagnostics.Debugger.Break();

そこから、衝突検出手順に別のブレークポイントを配置します。

于 2013-03-26T21:48:41.170 に答える
1

条件付きブレークポイントのいくつかのバリアントが機能するはずです。難しいのは、いつ侵入するかを決めることですが、条件付きBPを使用すると、柔軟なフレームワークを使用できます。

于 2013-03-26T21:50:22.530 に答える
-1
//assume that frame_counter is incremented at 60 Hz

//adjust this conditional to whatever you want to trigger the breakpoint for real
if(frame_counter > 60 * 60 * 5) { //wait 5 minutes

} // place breakpoint here

ニーズに合わせて調整

于 2013-03-26T21:47:01.753 に答える