ユーザー モード ダンプ ファイルの分析

このトピックには次が含まれます。

WinDbg によるユーザー モード ダンプ ファイルの分析

ユーザー モードのメモリ ダンプ ファイルは、WinDbg によって分析できます。 ダンプ ファイルが作成されたプロセッサまたは Windows バージョンは、WinDbg が実行されているプラットフォームと一致する必要はありません。

シンボル ファイルのインストール

メモリ ダンプ ファイルを分析する前に、ダンプ ファイルを生成した Windows のバージョンのシンボル ファイルにアクセスする必要があります。 これらのファイルは、ダンプ ファイルの分析に使用するデバッガーによって使用されます。 シンボル サーバーの操作については、「Microsoft パブリック シンボル」を参照してください。

また、システムがダンプ ファイルを生成する原因となったユーザー モード プロセス (アプリケーションまたはシステム サービス) のすべてのシンボル ファイルをインストールする必要があります。 このコードを自分で作成した場合は、コードのコンパイル時/リンク時にシンボル ファイルが生成されている必要があります。 商用コードの場合は、製品 CD-ROM を確認するか、ソフトウェアの製造元に連絡してこれらの特定のシンボル ファイルを確認してください。

WinDbg の起動

ダンプ ファイルを分析するには、-z コマンド ライン オプションを使用して WinDbg を起動します。

windbg -ySymbolPath-iImagePath-zDumpFileName

-v オプション (詳細モード) も利用できます。 オプションの完全なリストについては、「WinDbg コマンド ライン オプション」を参照してください。

WinDbg が既に実行中で休止モードの場合は、File | Open Crash Dump メニュー コマンドを選択するか、CTRL+D ショートカット キーを押すと、クラッシュ ダンプを開くことができます。 Open Crash Dump ダイアログ ボックスが表示されたら、File name テキスト ボックスにクラッシュ ダンプ ファイルの完全なパスと名前を入力するか、ダイアログ ボックスを使用して適切なパスとファイル名を選択します。 適切なファイルを選択したら、Open を選択します。

デバッガーの実行後に、.opendump (ダンプ ファイルを開く) コマンドの後に g (実行) を使用して、ダンプ ファイルを開くこともできます。

複数のダンプ ファイルを同時にデバッグできます。 これを行うには、コマンド ラインに複数の -z スイッチを含めるか (その後に別々のファイル名を指定)、.opendump を使用してデバッガー ターゲットとしてダンプ ファイルをさらに追加します。 複数のターゲット セッションを制御する方法の詳細については、「複数のターゲットのデバッグ」を参照してください。

ダンプ ファイルは、通常、拡張子が .dmp または .mdmp で終わります。 メモリ ダンプ ファイルには、ネットワーク共有または汎用名前付け規則 (UNC) ファイル名を使用できます。

また、ダンプ ファイルを CAB ファイルにパッケージ化することも一般的です。 -z オプションの後、または .opendump コマンドの引数としてファイル名 (拡張子 .cab を含む) を指定した場合、デバッガーは CAB からダンプ ファイルを直接読み取ることができます。 ただし、1 つの CAB に複数のダンプ ファイルが格納されている場合、デバッガーが読み取ることができるのはそのうちの 1 つだけです。 デバッガーは、シンボル ファイルまたはダンプ ファイルに関連付けられている実行可能ファイルが存在する場合でも、CAB から追加のファイルを読み取りません。

フル ユーザー ダンプ ファイルの分析

フル ユーザー ダンプ ファイルの分析は、ライブ デバッグ セッションの分析と似ています。 ユーザー モードでのダンプ ファイルのデバッグに使用できるコマンドの詳細については、「デバッガー コマンド」リファレンス セクションを参照してください。

ミニダンプ ファイルの分析

ユーザー モードのミニダンプ ファイルの分析は、フル ユーザー ダンプと同じ方法で行われます。 ただし、保持されているメモリがはるかに少ないため、実行できるアクションははるかに制限されます。 ミニダンプ ファイルに保持されているメモリ以外のメモリにアクセスしようとするコマンドは、正しく機能しません。

その他の手法

ダンプ ファイルから特定の種類の情報を読み取るために使用できる手法については、「ダンプ ファイルからの情報の抽出」を参照してください。

CDB によるユーザー モード ダンプ ファイルの分析

ユーザー モードのメモリ ダンプ ファイルは、CDB によって分析できます。 ダンプ ファイルが作成されたプロセッサまたは Windows バージョンは、CDB が実行されているプラットフォームと一致する必要はありません。

シンボル ファイルのインストール

メモリ ダンプ ファイルを分析する前に、ダンプ ファイルを生成した Windows のバージョンのシンボル ファイルにアクセスする必要があります。 これらのファイルは、ダンプ ファイルの分析に使用するデバッガーによって使用されます。 シンボル サーバーの操作については、「Microsoft パブリック シンボル」を参照してください。

また、システムがダンプ ファイルを生成する原因となったユーザー モード プロセス (アプリケーションまたはシステム サービス) のすべてのシンボル ファイルをインストールする必要があります。 このコードを自分で作成した場合は、コードのコンパイル時/リンク時にシンボル ファイルが生成されている必要があります。 商用コードの場合は、製品 CD-ROM を確認するか、ソフトウェアの製造元に連絡してこれらの特定のシンボル ファイルを確認してください。

CDB の起動

ダンプ ファイルを分析するには、-z コマンド ライン オプションを使用して CDB を起動します。

cdb -ySymbolPath-iImagePath-zDumpFileName

-v オプション (詳細モード) も利用できます。 オプションの完全なリストについては、「CDB コマンド ライン オプション」を参照してください。

デバッガーの実行後に、.opendump (ダンプ ファイルを開く) コマンドの後に g (実行) を使用して、ダンプ ファイルを開くこともできます。 これにより、複数のダンプ ファイルを同時にデバッグできます。

複数のダンプ ファイルを同時にデバッグできます。 これを行うには、コマンド ラインに複数の -z スイッチを含めるか (その後に別々のファイル名を指定)、.opendump を使用してデバッガー ターゲットとしてダンプ ファイルをさらに追加します。 複数のターゲット セッションを制御する方法の詳細については、「複数のターゲットのデバッグ」を参照してください。

ダンプ ファイルは、通常、拡張子が .dmp または .mdmp で終わります。 メモリ ダンプ ファイルには、ネットワーク共有または汎用名前付け規則 (UNC) ファイル名を使用できます。

また、ダンプ ファイルを CAB ファイルにパッケージ化することも一般的です。 -z オプションの後、または .opendump コマンドの引数としてファイル名 (拡張子 .cab を含む) を指定した場合、デバッガーは CAB からダンプ ファイルを直接読み取ることができます。 ただし、1 つの CAB に複数のダンプ ファイルが格納されている場合、デバッガーが読み取ることができるのはそのうちの 1 つだけです。 デバッガーは、シンボル ファイルまたはダンプ ファイルに関連付けられている実行可能ファイルが存在する場合でも、CAB から追加のファイルを読み取りません。

フル ユーザー ダンプ ファイルの分析

フル ユーザー ダンプ ファイルの分析は、ライブ デバッグ セッションの分析と似ています。 ユーザー モードでのダンプ ファイルのデバッグに使用できるコマンドの詳細については、「デバッガー コマンド」リファレンス セクションを参照してください。

ミニダンプ ファイルの分析

ユーザー モードのミニダンプ ファイルの分析は、フル ユーザー ダンプと同じ方法で行われます。 ただし、保持されているメモリがはるかに少ないため、実行できるアクションははるかに制限されます。 ミニダンプ ファイルに保持されているメモリ以外のメモリにアクセスしようとするコマンドは、正しく機能しません。

その他の手法

ダンプ ファイルから特定の種類の情報を読み取るために使用できる手法については、「ダンプ ファイルからの情報の抽出」を参照してください。