イベント
デバッガー エンジンは、ターゲット内のイベントを監視および応答するための機能を提供します。 イベントが発生すると、エンジンはターゲットを一時停止し (多くの場合、短時間のみ)、すべてのクライアントにイベントを通知します。これにより、ターゲットで実行を続行する方法をエンジンに指示します。
クライアントにイベントを通知するために、エンジンはクライアントに登録されているイベント コールバック オブジェクトを呼び出します。 エンジンは各イベント コールバックにイベントの詳細を提供し、イベント コールバックはターゲットで実行を続行する方法をエンジンに指示します。 異なるイベント コールバックが矛盾する命令を指定する場合、エンジンは最も優先順位の高い命令に対して動作します (「DEBUG_STATUS_XXX」参照)。これは通常、ターゲットの実行が最も少なくなる命令を選択することを意味します。
注意 イベント コールバックがイベントを処理している間は、ターゲットが中断され、デバッグ セッションにアクセスできます。ただし、エンジンは、WaitForEvent 呼び出し中に明示的に待機していたか、g (Go) や p (Step) などのコマンドを実行して暗黙的にイベントを待機していたため、イベント コールバックは WaitForEvent を呼び出すことができません。デバッガーが g (Go) or p (Step) などを実行する原因となるコマンドを実行しようとすると、エンジンは、これらのコマンドを実行方法の指示として解釈します。
イベント フィルター
デバッガー エンジンには、基本的なイベント監視のより簡単な代替手段であるイベント フィルターも用意されています。 イベント フィルターには、デバッガーの出力ストリームにイベントを出力するか、デバッガーで中断するかを指定する簡単な規則がいくつか用意されています。 また、イベントが発生したときにデバッガー コマンドを実行するためにも使用できます。
追加情報
監視イベントの詳細については、「監視イベント」を参照してください。