Intel CPUでWindows 7 x64を使用しています。どのwindbgが正常に動作し、x86アプリのデバッグに使用する必要がありますか? および別の同様の質問、カーネル デバッグ用の vmware ゲストとして Windows XP x86 をインストールします。私のホストは x64 Windows 7 です。
2 に答える
RTFM とは言いたくありませんが、この場合の答えはそこにあります。これは WinDbg ヘルプからの抜粋です。
32 ビット バージョンの Windows を実行しているホスト コンピューター ホスト コンピューターで 32 ビット バージョンの Windows を実行している場合は、32 ビット デバッグ ツールを使用します。(この状況は、x86 ベースのターゲットと x64 ベースのターゲットの両方に当てはまります。)
64 ビット バージョンの Windows を実行している x64 ベースのホスト コンピューター ホスト コンピューターが x64 ベースのプロセッサを使用し、64 ビット バージョンの Windows を実行している場合、次の規則が適用されます。
ダンプ ファイルを分析する場合は、32 ビット デバッグ ツールまたは 64 ビット デバッグ ツールのいずれかを使用できます。(ダンプ ファイルがユーザー モード ダンプ ファイルかカーネル モード ダンプ ファイルかは重要ではなく、ダンプ ファイルが x86 ベースまたは x64 ベースのプラットフォームで作成されたかどうかも重要ではありません)。
ライブ カーネル モード デバッグを実行している場合は、32 ビット デバッグ ツールまたは x64 デバッグ ツールのいずれかを使用できます。(この状況は、x86 ベースのターゲットと x64 ベースのターゲットの両方に当てはまります。)
デバッガーと同じコンピューターで実行されているライブ ユーザー モード コードをデバッグする場合は、WOW64 で実行されている 64 ビット コードと 32 ビット コードをデバッグするための 64 ビット ツールを使用します。デバッガーを 32 ビットまたは 64 ビット モードに設定するには、.effmach コマンドを使用します。
別のターゲット コンピューターで実行されているライブ 32 ビット ユーザー モード コードをデバッグする場合は、32 ビット デバッグ ツールを使用します。
通常は、デバッガーをデバッグ対象のアプリケーションのアーキテクチャーと一致させることが最善です (必要になる場合もあります)。32 ビット アプリケーションのデバッグには、64 ビット Windows OS でも x86 バージョンの WinDbg をお勧めします。32 ビット アプリケーションの WOW64 部分の一部をデバッグする場合にのみ、WinDbg の x64 バージョンを使用しますが、これは頻繁に発生するべきではありません。