デバッグ セッションの開始

カーネル デバッガーからユーザー モード デバッグを制御する方法を説明するこのドキュメントではターゲット アプリケーションは、デバッグ対象のユーザー モード アプリケーションを指し、ターゲット コンピューターは、ターゲット アプリケーションと NTSD または CDB プロセスを含むコンピューターを指し、ホスト コンピューターは、カーネル デバッガーを含むコンピューターを指します。

この手法の使用を開始するには、次の操作を行う必要があります。 手順 1 と 2 はどちらの順序で実行しても構いません。

  1. -d コマンドライン オプションを使用して、ターゲット コンピューターで NTSD または CDB を起動します。

    たとえば、次の構文を使用して、実行中のプロセスにアタッチできます。

    ntsd -d [-y UserSymbolPath] -p PID

    または、次の構文を使用して、ターゲットとして新しいプロセスを開始することもできます。

    ntsd -d [-y UserSymbolPath] ApplicationName

    これを事後デバッガーとしてインストールする場合は、次の構文を使用します。

    ntsd -d [-y UserSymbolPath]

    この手順の詳細については、「CDB を使用したユーザーモード プロセスのデバッグ」を参照してください。

  2. ターゲット コンピューターをデバッグするものとして、ホスト コンピューターで WinDbg または KD を起動しますが、実際にはターゲット コンピューターの処理を一時停止しないでください。 WinDbg を使用するには、次の構文を使用します。

    windbg [-y KernelSymbolPath] [-k ConnectionOptions]

    この手順の詳細については、「WinDbg (クラシック) を使用したライブ カーネル モード デバッグ」を参照してください

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

  3. ユーザーモード シンボル パスを設定していない場合は、入力> プロンプトから設定します。 カーネルモード シンボル パスを設定していない場合は、kd > プロンプトから設定します。 これらのプロンプトにアクセスする方法とモードを切り替える方法については、「モードの切り替え」を参照してください。

CDB を使用する場合、CDB に関連付けられているコマンド プロンプト ウィンドウがロックされたままになり、デバッグ中は使用できなくなります。 NTSD を使用する場合、ターゲット コンピューター上で NTSD にプロセス ID が関連付けられている場合でも、追加のウィンドウは作成されません。

デバッグ サーバーとしても使用しながら、カーネル デバッガーからユーザーモード デバッガーを実行する場合は、「このメソッドとリモート デバッグの組み合わせ」を参照してください。