1

似たような質問をたくさん読んだのですが、自分の問題が何であるかを正確に答えることができないようです。

64ビットWindows2008で実行されていた32ビットアプリケーションから一連のミニダンプを取得しました。32ビットVistaBusinessの32ビットVisualStudioはそれらにまったく触れないので、私はWinDbgでそれらを開こうとしています。

正確に対応する.pdbファイルはありません(この特定のリリース以降にのみ保存を開始しました)が、同じマシンで同じコードを使用して.pdbsをビルドしています。ミニダンプを作成した正確な実行可能ファイルにもアクセスできます。

.pdbsを実行可能ファイルと一致させることができるChkMatchと呼ばれる気の利いた小さなアプリケーションを見つけました...(ChkMatchによる)唯一の違いは年齢だったので、新しい.pdbsを元の実行可能ファイルと一致させました。

ただし、WinDbgにロードすると、「不一致のpdb」と表示されます。これは、設定.symopts+0x40したので、とにかくロードしようとします。次に、警告が表示されます。

*** WARNING: Unable to verify checksum for myexe.exe

実行!lmi myexeしてみると、実際、実行可能ファイルのチェックサムは実際にはゼロでした。少し調べてみると、実行可能ファイルは/releaseチェックサムを持つフラグを使用してビルドされている必要があることがわかりました。それはすべてうまくいっていますが、正確に時間を遡って再構築することはできません(ただし、そうした場合は、元の.pdbsを確実に保存します:-P)。

ここでできることはありますか?少しばかげているようですが、少なくともコールスタックを取得するのに十分なものをここで一致させることはできません。

4

2 に答える 2

1

コールスタックを取得するためにチェックサムは必要ありません。この警告は無視しても問題ありません。

スタックを取得するには、stackコマンド(kの任意のバリアント)を発行する必要があります。

ミニダンプに問題がない場合(つまり、実際の障害を説明している場合)、最初に自動分析!analyze -vを試して、開始する必要があります。

専門知識を使い果たしたら戻ってきてください:o)

于 2010-07-15T21:54:12.160 に答える
0

ミニダンプを使用している場合は、ダンプ内の画像がある場所を指すように画像パス(Ctrl + I)を設定する必要があります。ミニダンプの問題は、ターゲット上の実行可能ファイルからのコードやデータが含まれていないため、自分で提供する必要があることです。

-スコット

于 2010-07-16T14:45:36.540 に答える