次の方法で共有


WinDbg: 設定、ワークスペース、保存されたデバッグ セッション

WinDbg ロゴは虫眼鏡でビットを検査しています。

この記事では、WinDbg を設定および構成する方法について説明します。

WinDbg は、次の 2 種類の構成ファイルを使用します。

  • ワークスペースには 、WinDbg の設定 (テーマ、ウィンドウ レイアウト、シンボル パス、ソース パス、その他の構成オプションなど) が格納されます。 ワークスペース ファイルは .xml 拡張子を使用し、既定で %LOCALAPPDATA%\DBG\Workspacesに格納されます。 WinDbg を閉じると、既定のワークスペース ファイル (%LOCALAPPDATA%\DBG\DbgX.xml) に設定が自動的に保存されます。

  • 保存されたデバッグ セッション には、セッションごとのエンジン オプションと共に、ターゲット接続情報 (開くダンプ ファイルやアタッチするプロセスなど) が格納されます。 デバッグ セッション ファイルでは、 .debugtarget 拡張機能が使用され、既定で %LOCALAPPDATA%\DBG\Targetsに格納されます。 これらのファイルは、[デバッグの開始] ページの [最近使ったターゲット] の一覧に表示されます。

設定

[設定] メニューを使用して、ソースパスやシンボルパスなどの項目を設定します。 WinDbg のテーマを選択することもできます。 使用可能なテーマ モードは次のとおりです。

  • システム - Windows のシステム テーマ設定 (既定) に従います。
  • ライト - ライト テーマを使用します。
  • ダーク テーマを使用します。

[全般] タブが表示されている [WinDbg の設定] メニューのスクリーンショット。

現在、次の 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 に追加される機能が増えるにつれて、このファイル形式は進化し続けます。