カーネル デバッガーからのユーザーモード デバッガーの制御

入力と出力をユーザー モード デバッガーからカーネル デバッガーにリダイレクトできます。 このリダイレクトにより、カーネル デバッガーは、ターゲット コンピューター上で実行されている特定のユーザー モード デバッグ セッションを制御できるようになります。

カーネル デバッガーとして KD または WinDbg を使用できます。 WinDbg の使い慣れた機能の多くは、このシナリオでは使用できません。 たとえば、[ローカル] ウィンドウ、[逆アセンブリ] ウィンドウ、または [呼び出し履歴] ウィンドウを使用することはできません。また、ソース コードをステップずつ実行することもできません。 これは、WinDbg がターゲット コンピューターで実行されているデバッガー (NTSD または CDB) のビューアーとしてのみ機能するためです。

CDB または NTSD をユーザー モード デバッガーとして使用できます。 NTSD は、アプリケーションをデバッグするコンピューターのプロセッサとオペレーティング システムから必要なリソースが最小限で済むため、より良い選択肢です。 実際、カーネル デバッガーの制御下で NTSD を起動すると、NTSD ウィンドウは作成されません。 NTSD を使用すると、起動フェーズの早い段階でシリアル ポートを介してユーザー モードデバッグを実行し、シャットダウンに遅延させることができます。

Noteユーザー モード デバッガーの出力がカーネル デバッガーにリダイレクトされる場合、.shell コマンドはサポートされません。

このセクションには以下が含まれています。

  • デバッグ セッションの開始」では、ユーザー モード デバッガーがカーネル デバッガーから制御されるセッションを開始する方法について説明します。

  • 切り替えモード」では、関連する 4 つの異なるモードと、それらの間の代替方法について説明します。

  • この手法を使用する場合は、この手法が特に役立つシナリオについて説明します。

  • このメソッドとリモート デバッグを組み合わせることで、カーネル デバッガーからユーザー モード デバッガーを制御し、デバッグ サーバーとして同時に使用する方法について説明します。 この組み合わせは、ユーザー モード シンボルがシンボル サーバー上にある場合に役立ちます。