windbgを使用してミニダンプファイルをデバッグしようとすると、非常に奇妙な問題が発生します。自分のマシンと、ミニダンプが取得されたターゲットマシンでwindbgを実行することの両方でこれを試しましたが、どちらの場合も結果は同じです。
最初に、以下に示すように必要なdllをロードします。シンパスをマイクロソフトシンボルサーバーに設定した場合にも同じ問題が発生することに注意してください。
0:000> .symfix c:\ sos
0:000> .load C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ sos
チェーンをチェックするとすべてが良さそうなので、!peを実行すると、mscordacwksに関するエラーが発生します。これは、私が知る限り、通常、間違ったバージョンの.netFrameworkを使用していることを示しています。しかし、これをターゲットマシンで実行しているので、ここでは実際にはそうではないはずです。
次に、詳細な読み込みを行います
.cordll -ve -u -l
次のエラーメッセージが表示されます
CLRDLL:C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ mscordacwks.dll:4.0.30319.17929 f:8が目的のバージョン4.0.30319.296 f:8と一致しません
私が理解していないのは、windbgが古いバージョンのmscordacwksを探している理由です。.296ビルドはmsシンボルサーバーからダウンロードされるclrのバージョンのようですが、windbgにローカルバージョンを使用するように明示的に指示しました。