WinDbg ロゴは虫眼鏡でビットを検査しています。
この記事では、WinDbg を設定および構成する方法について説明します。
WinDbg は、次の 2 種類の構成ファイルを使用します。
ワークスペースには 、WinDbg の設定 (テーマ、ウィンドウ レイアウト、シンボル パス、ソース パス、その他の構成オプションなど) が格納されます。 ワークスペース ファイルは
.xml拡張子を使用し、既定で%LOCALAPPDATA%\DBG\Workspacesに格納されます。 WinDbg を閉じると、既定のワークスペース ファイル (%LOCALAPPDATA%\DBG\DbgX.xml) に設定が自動的に保存されます。保存されたデバッグ セッション には、セッションごとのエンジン オプションと共に、ターゲット接続情報 (開くダンプ ファイルやアタッチするプロセスなど) が格納されます。 デバッグ セッション ファイルでは、
.debugtarget拡張機能が使用され、既定で%LOCALAPPDATA%\DBG\Targetsに格納されます。 これらのファイルは、[デバッグの開始] ページの [最近使ったターゲット] の一覧に表示されます。
設定
[設定] メニューを使用して、ソースパスやシンボルパスなどの項目を設定します。 WinDbg のテーマを選択することもできます。 使用可能なテーマ モードは次のとおりです。
- システム - Windows のシステム テーマ設定 (既定) に従います。
- ライト - ライト テーマを使用します。
- ダーク テーマを使用します。
現在、次の 6 つの 設定 ダイアログがあります。
- 全般
- コマンド ウィンドウ
- デバッグ設定
- 逆アセンブル ウィンドウ
- イベントと例外
- ソース ウィンドウ
パスの設定の詳細については、WinDbg (クラシック) での Windows デバッガーとソース コード デバッグのシンボル パスを参照してください。
ワークスペース
ワークスペースでは、WinDbg の設定 (テーマ、ウィンドウ レイアウト、シンボル パス、ソース パス、その他の構成オプションなど) がファイルに保存されます。
ワークスペースの保存と読み込み
ワークスペースは、[ ファイル ] メニューから管理できます。
- ワークスペースの保存 - 現在の設定をアクティブなワークスペース ファイルに保存します。
- ワークスペースを名前を付けて保存 - 現在の設定を新しいワークスペース ファイルに保存します。
- [ワークスペースを開く ] - 以前に保存したワークスペース ファイルから設定を読み込みます。
-Q コマンド ライン オプションで自動保存が無効になっていない限り、デバッガーを閉じると、設定も自動的に保存されます。
ワークスペースのコマンド ライン オプション
次のコマンド ライン オプションを使用して、ワークスペースの動作を制御できます。
-
-Q- 設定の自動保存を無効にします。 設定の変更は、[ファイル] メニューから [ワークスペースの保存] または [ワークスペースを名前を付けて保存] を明示的に選択した場合にのみ保持されます。 -
-WF SettingsFile- 起動時に指定したワークスペース ファイルから設定を読み込みます。
保存されたデバッグ セッション
保存されたデバッグ セッションには、セッションごとのエンジン オプションと共にターゲット接続情報が格納されます。 デバッグ セッション ファイルでは、 .debugtarget 拡張機能が使用され、既定で %LOCALAPPDATA%\DBG\Targetsに格納されます。
デバッグ セッションの保存と読み込み
デバッグ セッションは、[ ファイル ] メニューとコマンド ラインを使用して管理できます。
-
デバッグ セッションの保存 - 現在のターゲット接続情報を
.debugtargetファイルに保存します。 このオプションは、デバッグ ターゲットがアクティブな場合にのみ使用できます。 - 最近使用したターゲット - [ デバッグの開始 ] ページで、[ 最近 使用したターゲット] の一覧から以前に保存したデバッグ セッションを選択して再読み込みします。
-
-loadSession- 保存されたデバッグ セッション構成ファイルをコマンド ラインから読み込みます。
デバッグ セッションの設定
ターゲット接続情報に加えて、次の設定は保存されたデバッグ セッション ファイル (.debugtarget ファイル拡張子) に格納されます。
全般設定
注
このリストと形式は最終版ではなく、変更される可能性があります。
| 設定 | 既定値 | 説明 |
|---|---|---|
FinalBreak |
true |
true場合は、最終的なブレークポイント (コマンド ライン オプション-g) を無視します。 |
SourceDebugging |
true |
ソース モードまたはアセンブリ モードを切り替えます。 |
DebugChildProcesses |
false |
(ユーザー モードのみ)。 true場合は、ターゲット アプリケーションによって開始された子プロセスをデバッグします (コマンド ライン オプション-o )。 |
Noninvasive |
false |
非侵入型アタッチ (-pv コマンドライン オプション) を指定します。 |
NoDebugHeap |
false |
デバッグ ヒープを使用しないように指定します (コマンド ライン オプション-hd )。 |
Verbose |
false |
詳細モードを有効にすると、一部の表示コマンド (レジスタ ダンプなど) に対してより詳細な出力 (-v コマンド ライン オプション) が生成されます。 |
Elevate |
- | WinDbg によって内部的に使用されます。 変更しないでください。 |
Restartable |
- | WinDbg によって内部的に使用されます。 変更しないでください。 |
UseImplicitCommandLine |
false |
暗黙的なコマンド ラインを使用します (コマンド ライン オプション-cimp )。 この設定は、明示的な実行プロセスではなく、暗黙的なコマンド ラインでデバッガーを起動します。 |
コマンド ライン オプションの詳細については、「 WinDbg コマンド ライン オプション」を参照してください。
シンボルの設定
| 設定 | 既定値 | 説明 |
|---|---|---|
SymbolOptionsOverride |
0 |
この明示的なシンボル オプション マスクは、単一の 16 進数の形式です。 |
ShouldOverrideSymbolOptions |
false |
trueに設定されている場合は、この表に示されているすべてのシンボル オプションを、前の表で説明されている指定されたシンボル オプション マスクでオーバーライドします。 |
SymOptExactSymbols |
false |
このオプションにより、デバッガーはすべてのシンボル ファイルの厳密な評価を実行します。 |
SymOptFailCriticalErrors |
false |
このシンボル オプションを使用すると、ファイル アクセス エラー ダイアログ ボックスが非表示になります。 |
SymOptIgnoreCvRec |
false |
このオプションにより、シンボル ハンドラーは、シンボルを検索するときに、読み込まれたイメージ ヘッダー内の CV レコードを無視します。 |
SymOptIgnoreNtSympath |
false |
このオプションにより、デバッガーはシンボル パスと実行可能イメージ パスの環境変数の設定を無視します。 |
SymOptNoCpp |
false |
このシンボル オプションは、C++ 翻訳をオフにします。 このシンボル オプションを設定すると、すべてのシンボル__::が置き換えられます。 |
SymOptNoUnqualifiedLoads |
false |
このシンボル オプションは、シンボル ハンドラーによるモジュールの自動読み込みを無効にします。 このオプションを設定すると、デバッガーはシンボルの照合を試みます。 既に読み込まれているモジュールのみが検索されます。 |
SymOptAutoPublics |
false |
このシンボル オプションにより、DbgHelp は最後の手段としてのみ.pdb ファイル内のパブリック シンボル テーブルを検索します。 プライベート シンボル データを検索するときに一致が見つかった場合、パブリック シンボルは検索されません。 この設定により、シンボルの検索速度が向上します。 |
SymOptDebug |
false |
このシンボル オプションは、ノイズの多いシンボルの読み込みをオンにします。 この設定は、シンボルの検索に関する情報を表示するようにデバッガーに指示します。 |
シンボル オプションの詳細については、「シンボル オプション」を参照してください。
セッション XML ファイルをデバッグする
デバッグ セッションのターゲット接続情報は、 .debugtarget ファイル拡張子を持つ XML 形式で格納されます。
次のファイルは、デバッグ セッション構成ファイルの例を示しています。
<?xml version="1.0" encoding="utf-8"?>
<TargetConfig Name="C:\paint.dmp" LastUsed="2017-08-03T21:34:20.1013837Z">
<EngineConfig />
<EngineOptions>
<Property name="FinalBreak" value="true" />
<Property name="SourceDebugging" value="true" />
<Property name="DebugChildProcesses" value="false" />
<Property name="Noninvasive" value="false" />
<Property name="NoDebugHeap" value="false" />
<Property name="Verbose" value="false" />
<Property name="SymbolOptionsOverride" value="0" />
<Property name="ShouldOverrideSymbolOptions" value="false" />
<Property name="SymOptExactSymbols" value="false" />
<Property name="SymOptFailCriticalErrors" value="false" />
<Property name="SymOptIgnoreCvRec" value="false" />
<Property name="SymOptIgnoreNtSympath" value="false" />
<Property name="SymOptNoCpp" value="false" />
<Property name="SymOptNoUnqualifiedLoads" value="false" />
<Property name="SymOptAutoPublics" value="false" />
<Property name="SymOptDebug" value="false" />
<Property name="Elevate" value="false" />
<Property name="Restartable" value="true" />
<Property name="UseImplicitCommandLine" value="false" />
</EngineOptions>
<TargetOptions>
<Option name="OpenDump">
<Property name="DumpPath" value="C:\paint.dmp" />
</Option>
</TargetOptions>
</TargetConfig>
WinDbg に追加される機能が増えるにつれて、このファイル形式は進化し続けます。