この記事では、WinDbgのユーザモードデバッグチュートリアルを試してみたで使用したチュートリアルの環境を利用して、WinDbgの基本的なUI操作についてまとめていきます。
WinDbgを用いたWindowsのデバッグやダンプの解析方法について公開している情報については、以下のページに一覧をまとめているので、よければご覧ください。
参考:WinDbgを用いたデバッグとトラブルシューティングのテクニック
本記事では、以下の内容についてまとめています。
もくじ
-
- 1. Open Souce File ([Ctrl+O]キー)
- 2. Insert or remove breakpoint ([F9]キー)
- 3. Command ([Alt+1]キー)
- 4. Watch ([Alt+2]キー)
- 5. Locals ([Alt+3]キー)
- 6. Registers ([Alt+4]キー)
- 7. Memory Window ([Alt+5]キー)
- 8. Call Stack ([Alt+6]キー)
- 9. Disassembly ([Alt+7]キー)
- 10. Scratch Pad ([Alt+8]キー)
- 11. Processes and Threads ([Alt+9]キー)
- 12. Command Brouser ([Ctrl+N]キー)
- 13. Source mode ON
- 14. Source mode OFF
- 15. Font
- 16. Options
- まとめ
WinDbgのUIについて
今回利用しているWinDbgのバージョンはWinDbg10.0.22000.1 AMD64
です。
こちらはWinDbgを起動した直後のGUIです。管理者権限で起動しています。
それぞれのボタンは次の機能を持ちます。
番号 | 機能 | ショートカット |
---|---|---|
1 | Open Souce File | Ctrl+O |
2 | Insert or remove breakpoint | F9 |
3 | Command | Alt+1 |
4 | Watch | Alt+2 |
5 | Locals | Alt+3 |
6 | Registers | Alt+4 |
7 | Memory Window | Alt+5 |
8 | Call Stack | Alt+6 |
9 | Disassembly | Alt+7 |
10 | Scratch Pad | Alt+8 |
11 | Processes and Threads | Alt+9 |
12 | Command Brouser | Ctrl+N |
13 | Source mode ON | N/A |
14 | Source mode OFF | N/A |
15 | Font | N/A |
16 | Options | N/A |
各ツールバーボタンの説明については、以下のリファレンスに記載があります。
参考:ツール バー ボタン - Windows drivers | Microsoft Docs
各ショートカットについても以下のリファレンスに記載があります。
参考:Keyboard Shortcuts - Windows drivers | Microsoft Docs
1. Open Souce File ([Ctrl+O]キー)
ツールバーの一番左端にある1番のボタンは、Open Source File
ボタンです。
このボタンをクリックすると、エクスプローラーウィンドウが開き、ソースファイルをWinDbgで開くことができます。 ※ 実行ファイルやプロセスへのアタッチはできません。
参考:File Open Source File - Windows drivers | Microsoft Docs
ショートカットキーは[Ctrl+O]キーです。
ソースファイルを開くと、以下のようにWinDbg上でソースファイルの中のソースコードを参照することができます。 ※ これは読み取り専用であり、書き込みはできません。
2. Insert or remove breakpoint ([F9]キー)
2番のボタンは、Insert or remove breakpoint
です。
アクティブなウィンドウがSourceウィンドウか、Disassemblyウィンドウのときのみ利用可能です。
このボタンを任意の箇所を選択した状態で押すことで、ブレークポイントの設定を切り替えることができます。
ショートカットキーは、[F9]キーです。
参考:Edit Breakpoints - Windows drivers | Microsoft Docs
例えば、次の例では、メモ帳アプリのnotepad!wWinMain
にブレークポイントが設定されています。
ここで、ブレークポイントに設定された箇所(色のついた行)にカーソルを置いた状態でInsert or remove breakpoint
ボタンか、[F9]キーを押すことで、ブレークポイント設定を解除できます。
逆に、ブレークポイントに設定されていない箇所(色のついていない行)でこのボタンを実行することで、新たなブレークポイントを設定することもできます。
3. Command ([Alt+1]キー)
Commandウィンドウが閉じている状態で3番のボタンをクリックすることで、新たにCommandウィンドウを開くことができます。
ショートカットキーは[Alt+1]キーです。
参考:View Command - Windows drivers | Microsoft Docs
4. Watch ([Alt+2]キー)
4番のボタンをクリックすることで、Watchウィンドウを開くことができます。
ショートカットキーは[Alt+2]キーです。
参考:View Watch - Windows drivers | Microsoft Docs
Watchウィンドウには、グローバル変数、ローカル変数、レジスタに関する情報が表示されます。 Watchウィンドウの詳細については以下のドキュメントを参照してください。
参考:ウォッチ ウィンドウの使用 - Windows drivers | Microsoft Docs
5. Locals ([Alt+3]キー)
5番のボタンをクリックすることで、Localsウィンドウを開くことができます。
ショートカットキーは[Alt+3]キーです。
参考:ローカルの表示 - Windows drivers | Microsoft Docs
Localsウィンドウでは、ローカル変数を一覧することができます。
参考:WinDbg でのローカル変数の表示と編集 - Windows drivers | Microsoft Docs
6. Registers ([Alt+4]キー)
6番のボタンをクリックすることで、Registersウィンドウを開くことができます。
ショートカットキーは[Alt+4]キーです。
参考:レジスタの表示 - Windows drivers | Microsoft Docs
Registersウィンドウを用いたレジスタの表示と編集方法については、以下のドキュメントを参照してください。
参考:WinDbg でのレジスタの表示と編集 - Windows drivers | Microsoft Docs
7. Memory Window ([Alt+5]キー)
7番のボタンをクリックすることで、Memoryウィンドウを開くことができます。
ショートカットキーは[Alt+5]キーです。
参考:メモリの表示 - Windows drivers | Microsoft Docs
Memoryウィンドウの用法については以下のドキュメントを参照してください。
参考:WinDbg でのメモリの表示と編集 - Windows drivers | Microsoft Docs
8. Call Stack ([Alt+6]キー)
8番のボタンをクリックすることで、Call Stackウィンドウを開くことができます。
ショートカットキーは[Alt+6]キーです。
参考:呼び出し履歴の表示 - Windows drivers | Microsoft Docs
Call Stackウィンドウにはスタック内の呼び出し履歴情報が表示されます。
これは、Commandウィンドウでk
コマンドを実行して呼び出したスタックトレースの情報と同一になります。
Call Stackウィンドウについては以下のドキュメントを参照してください。
参考:WinDbg でのコール スタックの表示 - Windows drivers | Microsoft Docs
9. Disassembly ([Alt+7]キー)
9番のボタンをクリックすることで、Disassemblyウィンドウを開くことができます。
ショートカットキーは[Alt+7]キーです。
参考:逆アセンブリの表示 - Windows drivers | Microsoft Docs
Disassemblyウィンドウでは、デバッグ対象のアセンブリコードを表示することができます。
Disassemblyウィンドウについては以下を参照してください。
参考:WinDbg でのアセンブリ コードのデバッグ - Windows drivers | Microsoft Docs
10. Scratch Pad ([Alt+8]キー)
10番のボタンをクリックすることで、Scratch Pad ウィンドウを開くことができます。
ショートカットキーは[Alt+8]キーです。
Scratch Padとは、テキストを入力し、保存できるクリップボードです。
参考:スクラッチ パッドの使用 - Windows drivers | Microsoft Docs
11. Processes and Threads ([Alt+9]キー)
11番のボタンをクリックすることで、Processes and Threadsウィンドウを開くことができます。
ショートカットキーは [Alt+9]キーです。
このウィンドウでは、デバッグ中のすべてのプロセスの一覧を参照できます。
以下の画像の例では、notepad.exe
のプロセスの下に、プロセス内のスレッドがツリー状に表示されています。
ここで、プロセスの表示は<デバッガーが使用する内部の10進数プロセスインデックス>:<16進数のプロセス ID> プロセスのアプリケーション名
の形式になります。
また、各スレッドの表示は、<デバッガーが使用する内部の10進数のスレッドインデックス>:<16進数のスレッド ID>
を意味します。
参考:WinDbg でのプロセスとスレッドの制御 - Windows drivers | Microsoft Docs
12. Command Brouser ([Ctrl+N]キー)
12番のボタンをクリックすることで、Command Brouserウィンドウを開くことができます。
ショートカットキーは[Ctrl+N]キーです。
このウィンドウでは、コマンドの出力結果を取得することができます。
実行するコマンドは、Commandウィンドウで入力するコマンドと同一ですが、コマンドの実行履歴などを利用して効率的なコマンド実行を実現できます。
参考:WinDbg でのコマンド ブラウザー ウィンドウの使用 - Windows drivers | Microsoft Docs
13. Source mode ON
デバッガーをソースモードに切り替えます。
ソースモードがアクティブである場合、ステータスバーで ASM を使用することはできません。
参考:デバッグソースモード - Windows drivers | Microsoft Docs
14. Source mode OFF
デバッガーをアセンブリモードに切り替えます。
参考:デバッグソースモード - Windows drivers | Microsoft Docs
15. Font
デバッグウィンドウのフォントを変更できます。
参考:フォントの表示 - Windows drivers | Microsoft Docs
16. Options
オプションウィンドウを開きます。 オプションウィンドウでは、以下の項目を設定可能です。
- ソースウィンドウでタブ文字を表示する場合のタブの幅
- 同時に開くことができるドキュメントまたはソースウィンドウの数
- ソース言語の解析によるシンタックスハイライトを有効化します
- マウスホバー時の解析を有効化します
- Enterキーで直前のコマンドを再実行する機能を有効化します
- 自動スクロール機能を制御します
- ワークスペースをWinDbgに保存する時間と頻度を制御します
- 簡易編集モードを有効化します
- 表示されるテキストの色を変更します
参考:オプションの表示 - Windows drivers | Microsoft Docs
まとめ
今回は、WinDbgを用いたデバッグや解析の際に利用するウィンドウのインターフェースについてまとめました。
WinDbgを用いたWindowsのデバッグやダンプの解析方法について公開しているその他情報については、以下のページのリストをご覧ください。