デバッガー コマンドの使用
デバッガコマンドの使用方法について説明します。 WinDbg は、クラッシュ ダンプの分析、ライブのユーザーモードとカーネルモード コードのデバッグ、CPU レジスタとメモリの調査に使用できるデバッガーです。 詳細については、「WinDbg の概要」を参照してください。
デバッガーをインストールするには、「Windows デバッガーのインストール」を参照してください。
WinDbg の使用を開始するには、「Windows デバッグの概要」を参照してください。
WinDbg デバッガー コマンド ウィンドウ
WinDbg の場合、「デバッガー コマンド ウィンドウ」とは、タイトル バーに「コマンド」というラベルが付いているウィンドウを指します。 このウィンドウには 2 つのペインが含まれています。
下部の小さなペインにコマンドを入力します。
上部の大きなペインにコマンド出力が表示されます。
このウィンドウは、デバッグ セッションの開始時に常に開きます。 [表示] メニューの [コマンド] を選択するか、Alt + 1 キーを押すか、コマンド (Alt + 1) ボタン (
上矢印キーと下矢印キーを使用して、コマンド履歴をスクロールできます。 前のコマンドが表示されたら、それを編集して Enter キーを押すと前のコマンド (または前のコマンドの編集バージョン) を実行できます。 このプロシージャが正しく機能するために、カーソルが行末にある必要はありません。
KDまたはCDB
KD または CDB の場合、「デバッガ コマンド ウィンドウ」はウィンドウ全体を指します。 ウィンドウの下部にあるプロンプトにコマンドを入力します。 コマンドに出力がある場合は、ウィンドウに出力が表示され、その後プロンプトが再度表示されます。
デバッガのコマンド ウィンドウ プロンプト
ユーザーモード デバッグを実行しているとき、デバッガー コマンド ウィンドウのプロンプトは次の例のようになります。
2:005>
前の例では、2 が現在のプロセス番号、005 が現在のスレッド番号です。
デバッガーを複数のコンピューターにアタッチする場合は、次の例のように、プロセスとスレッド番号の前にシステム番号が含まれます。
3:2:005>
この例では、3 が現在のシステム番号、2 が現在のプロセス番号、005 が現在のスレッド番号です。
プロセッサが 1 つだけ搭載されているターゲット コンピューターでカーネルモード デバッグを実行している場合、プロンプトは次の例のようになります。
kd>
ただし、ターゲット コンピューターに複数のプロセッサが搭載されている場合は、次の例のように、プロンプトの前に現在のプロセッサの番号が表示されます。
0: kd>
デバッガーが以前に発行されたコマンドの処理でビジーな場合、新しいコマンドはコマンド バッファーに追加できますが、一時的に処理されません。 さらに、KD および CDB ではコントロール キーを引き続き使用でき、WinDbg ではメニュー コマンドとショートカット キーを引き続き使用できます。 KD または CDB がこのビジー状態にある場合、プロンプトは表示されません。 WinDbg がこのビジー状態になると、プロンプトの代わりに次のインジケーターが表示されます。
*BUSY*
.pcmd (プロンプト コマンドの設定) コマンドを使用して、このプロンプトにテキストを追加できます。
コマンドの種類
WinDbg、KD、CDB はさまざまなコマンドをサポートしています。 一部のコマンドはデバッガー間で共有されますが、一部のコマンドは 1 つまたは 2 つのデバッガーでのみ使用できます。
一部のコマンドはライブ デバッグでのみ使用でき、他のコマンドはダンプ ファイルをデバッグする場合にのみ使用できます。
一部のコマンドはユーザーモードのデバッグ中にのみ使用でき、他のコマンドはカーネルモードのデバッグ中にのみ使用できます。
一部のコマンドは、ターゲットが特定のプロセッサで実行されている場合にのみ使用できます。 すべてのコマンドとその制限事項の詳細については、「デバッガー コマンド」を参照してください。
コマンドの編集、繰り返し、キャンセル
コマンドを入力するときに標準の編集キーを使用できます。
上矢印キーと下矢印キーを使用して、前のコマンドを検索します。
BACKSPACE、DELETE、INSERT、および左矢印キーと右矢印キーを使用して、現在のコマンドを編集します。
現在の行をクリアするには、ESC キーを押します。
TAB キーを押すと、テキスト入力が自動的に完了します。 いずれのデバッガーでも、少なくとも 1 文字を入力した後に TAB キーを押すと、コマンドが自動的に完了します。 TAB キーを繰り返し押してテキスト補完オプションを循環させ、SHIFT キーを押しながら TAB を押して逆方向に循環させます。 テキスト内でワイルドカード文字を使用し、Tab キーを押してテキスト補完オプションの完全なセットを展開することもできます。 たとえば、「fo*!ba」と入力して Tab キーを押すと、デバッガーは、「fo」で始まるモジュール名を持つすべてのモジュール内の、「ba」で始まるすべてのシンボルのセットを展開します。 別の例として、「!*prcb」と入力して TAB キーを押すと、「prcb」が含まれるすべての拡張コマンドを完了できます。
TAB キーを使用してテキスト補完を実行する場合、テキスト断片がピリオド (.) で始まる場合、テキストはドット コマンドと照合されます。 テキスト フラグメントが感嘆符 (!) で始まる場合、テキストは拡張コマンドと一致します。 それ以外の場合、テキストは記号と照合されます。 TAB キーを使用してシンボルを入力する場合、TAB キーを押すとコードが完成し、シンボルとモジュール名を入力します。 明らかなモジュール名がない場合は、ローカル シンボルとモジュール名が完成します。 モジュールまたはモジュール パターンが指定された場合、シンボル補完により、一致するすべてのコードと型シンボルが完成します。
[デバッガー コマンド] ウィンドウで選択したまま (または右クリック) を行うと、入力しているコマンドにクリップボードの内容が自動的に貼り付けられます。
コマンドの最大長は 4096 文字です。 ただし、カーネル デバッガーからユーザーモード デバッガーを制御している場合、行の最大長は 512 文字です。
CDB および KD では、ENTER キーを単独で押して前のコマンドを繰り返します。 WinDbg では、この動作を有効または無効にすることができます。 この動作の詳細については、「ENTER (最後のコマンドの繰り返し)」を参照してください。
最後に発行したコマンドで長い表示が表示され、それを切りたい場合は、CDB または KD で CTRL+C キーを使用します。 WinDbg では、[デバッグ | 中断] を使用するか、CTRL+BREAK を押します。
カーネルモード デバッグでは、CTRL+C を押すと、ターゲット コンピューターのキーボードからコマンドをキャンセルできます。
.cls (画面のクリア) コマンドを使用すると、[デバッガー コマンド] ウィンドウからすべてのテキストをクリアできます。 このコマンドはコマンド履歴全体をクリアします。 WinDbg では、[編集 | コマンド出力のクリア]を使用するか、[デバッガー コマンド] ウィンドウで [コマンド出力のクリア] を選択すると、コマンド履歴をクリアできます。
式の構文
コマンドおよび拡張コマンドの多くは、式を引数として受け入れます。 デバッガーは、コマンドを実行する前にこれらの式を評価します。 式の詳細については、「式の評価」を参照してください。
エイリアス
エイリアスは、複雑な語句を再入力する手間を省くために使用できるテキスト マクロです。 エイリアスには 2 種類あります。 エイリアスの詳細については、「エイリアスの使用」を参照してください。
自己反復コマンド
次のコマンドを使用して、アクションを繰り返したり、他のコマンドを条件付きで実行したりできます。
j (If-Else の実行) 条件付きコマンド
z (While の実行) 条件付きコマンド
~e (スレッド固有コマンド) コマンド修飾子
!list 拡張コマンド
各コマンドの詳細については、個々のコマンドのトピックを参照してください。
スクロールの制御
スクロールバーを使用して、以前のコマンドとその出力を表示できます。
CDB または KD を使用している場合、キーボード入力により、[デバッガー コマンド] ウィンドウは自動的に一番下までスクロールされます。
WinDbg では、コマンドが出力を生成するか、ENTER キーを押すと、表示が自動的に一番下までスクロールされます。 この自動スクロールを無効にする場合は、[表示] メニューの [オプション] を選択し、[自動スクロール] チェック ボックスをクリアします。
WinDbg テキスト機能
WinDbg では、いくつかの追加機能を使用して、[デバッガー コマンド] ウィンドウでのテキストの表示方法を変更できます。 これらの機能の一部には WinDbg ウィンドウでアクセスでき、一部には [デバッガー コマンド] ウィンドウのショートカット メニューから、また一部には適切なメニュー アイコンを選択してアクセスできます。
ショートカット メニューの [右端での折り返し] コマンドは、右端での折り返し状況をオンまたはオフにします。 このコマンドは、この状態が変更された後に使用するコマンドだけでなく、ウィンドウ全体に影響します。 コマンドと拡張機能の多くは書式設定された表示を生成するため、通常は右端での折り返しを推奨しません。
[編集 | コマンド出力に追加] メニュー コマンドは、[デバッガー コマンド] ウィンドウにコメントを追加します。 ショートカット メニューの [コマンド出力に追加] コマンドにも同じ効果があります。
[デバッガー コマンド] ウィンドウのテキストと背景に使用される色をカスタマイズできます。 テキストの種類ごとに異なる色を指定できます。 たとえば、自動レジスタ出力を 1 つの色で表示し、エラー メッセージを別の色で表示して、DbgPrint メッセージをまた別の色で表示することができます。
フォントのカスタマイズや特別な編集コマンドの使用など、WinDbg のデバッグ情報ウィンドウに共通する機能をすべて使用できます。
リモート デバッグ
デバッガーを介してリモート デバッグを実行している場合、デバッグ クライアントは限られた数のコマンドにアクセスできます。 クライアントがアクセスできるコマンドの数を変更するには、 -clines command-line オプション または _NT_DEBUG_HISTORY_SIZE environment 変数を使用します。