操作モード

IDE が動作するモードには、次の 3 つがあります。

  • デザイン モード

  • 実行モード

  • 解約モード

    カスタム デバッグ エンジン (DE) をこれらのモード間でどのように移行させるかは実装上の決定であり、移行メカニズムについてよく理解しておく必要があります。 これらのモードには、DE によって直接実装される場合とされない場合があります。 これらのモードは、実際には、ユーザーの操作または DE からのイベントに基づいて切り替わるデバッグ パッケージ モードです。 たとえば、実行モードから中断モードへの移行は、DE からの停止イベントによって引き起こされます。 中断モードから実行モードまたはステップ モードへの移行は、ステップ実行や実行などのユーザーが行う操作によって引き起こされます。 DE の移行の詳細については、「実行の制御」を参照してください。

デザイン モード

デザイン モードは、Visual Studio によるデバッグが実行されていない状態です。この間に、アプリケーションでデバッグ機能を設定できます。

デザイン モードの場合、いくつかのデバッグ機能しか使用できません。 開発者は、ブレークポイントを設定するか、ウォッチ式を作成することができます。 IDE がデザイン モードの間は、DE が読み込まれたり呼び出されたりすることはありません。 DE との相互作用は、実行モードと中断モードでのみ行われます。

実行モード

IDE のデバッグ セッションでプログラムが実行されると、実行モードに移行します。 アプリケーションは、終了するまで、ブレークポイントにヒットするまで、または例外がスローされるまで実行されます。 アプリケーションの実行が終了すると、DE はデザイン モードに移行します。 ブレークポイントにヒットしたとき、または例外がスローされた場合、DE は中断モードに移行します。

解約モード

デバッグ プログラムの実行が中断されると、中断モードに移行します。 中断モードの場合、開発者は中断時のアプリケーションのスナップショットを取得したり、アプリケーションの状態を分析して、アプリケーションの実行方法を変更したりできます。 開発者は、コードの表示と編集、データの検査または変更、アプリケーションの再起動、実行の終了、または同じポイントからの実行の継続を行うことができます。

DE から同期停止イベントが送信されると、中断モードに移行します。 同期停止イベントは、停止イベントとも呼ばれ、デバッグ中のアプリケーションによってコードの実行が停止されたことがセッション デバッグ マネージャー (SDM) と IDE に通知されます。 IDebugBreakpointEvent2 インターフェイスと IDebugExceptionEvent2 インターフェイスは停止イベントの例です。

停止イベントは、次のいずれかのメソッドを呼び出すことで継続されます。これにより、デバッガーが中断モードから実行モードまたはステップ モードに移行します。

ステップ モード

プログラムで、次のコード行へのステップ実行、または関数に対するステップ イン、ステップ オーバー、ステップ アウトが実行されると、ステップ モードになります。 ステップは、Step メソッドを呼び出すことによって実行されます。 このメソッドには、入力パラメーターとして STEPUNIT および STEPKIND 列挙体を指定する DWORD が必要です。

プログラムで、次のコード行または関数にステップ インした場合、またはカーソルまたは設定されたブレークポイントまで実行された場合、DE は自動的に中断モードに戻ります。

関連項目