お客様のクラッシュダンプファイルには、
mfc80u.dll *C:\Windows\winsxs\x86_microsoft.vc80.mfc_1fc8b3b9a1e18e3b_8.0.50727.5592_none_cbf62b764709d1c9\mfc80u.dll N/A N/A No matching binary found. 20 8.00.50727.5592 11.01.2011 07:32 6E860000-6E96F000 memory.dmp: Native
msvcr80.dll *C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.5592_none_d09196c24426e2d4\msvcr80.dll N/A N/A No matching binary found. 21 8.00.50727.5592 11.01.2011 06:17 74E40000-74EDB000 memory.dmp: Native
問題は、これらのDLL( 2011年4月から)が2011年6月からの追加のパッチに置き換えられ、ネット上で見つけることができるものとは反対に、MSからのダウンロードが行うため、これらの適切なスタックトレースを取得できないことです。 5592バージョンは含まれていませんが、CRT / MFC /...DLLの6195バージョンのみが含まれています。
実行可能ファイルのマニフェストはバージョンを指し8.0.50727.4053
ますが、このバージョンは5592に置き換えられ、その後6195に置き換えられるため、役に立ちません。SxSTraceの出力は次のようになります:(ドイツ語のテキストを無視してバージョン番号を確認してください)
INFORMATION: Verweis "Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053"" wird aufgelöst.
...
INFORMATION: Für ProcessorArchitecture "x86" wird der Verweis aufgelöst.
INFORMATION: Für ProcessorArchitecture "x86" wird der Verweis aufgelöst.
INFORMATION: Verweis für Kultur "Neutral" wird aufgelöst.
INFORMATION: Bindungsrichtlinie wird angewendet.
INFORMATION: Sucht nach Herausgeberrichtlinien in "C:\Windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_517205a10f4550e3.manifest".
INFORMATION: Die Assemblierungsversion wurde von der Herausgeberrichtlinie umgeleitet.
INFORMATION: Die Bereitstellungsrichtlinien-Assemblierungsidentität ist Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.6195".
これで、顧客のPCから正確なDLLを取得できる可能性がありますが、それでもDLLのみが残り、デバッグシンボル(PDBファイル)はありません。
私のダンプ(たとえばkernel32)を見ると、通常、すべてのシステムDLLがMSシンボルサーバー(またはそのキャッシュ)からロードされる必要があることがわかります-
kernel32.dll C:\WINDOWS\Symbols\Cache\kernel32.dll\4e211484100000\kernel32.dll N/A N/A Symbols loaded (source information stripped). C:\WINDOWS\Symbols\Cache\wkernel32.pdb\0EB73428EC4E430FB8EDD94C5946855B2\wkernel32.pdb 3 6.01.7600.16850 16.07.2011 05:33 76820000-76920000 memory.dmp: Native
マイクロソフトがこれらのファイルの5592バージョンをシンボルサーバーから削除したと想定する必要があります。これにより、お客様のPCに2011年4月の更新が含まれているが、2011年6月の更新が含まれていない場合、有用なデバッグが効果的に防止されます。MSページから推測できることから、これらの更新プログラムはWindows Updateに含まれているため、顧客の更新メカニズムが不完全な場合、私にできることは何もありません。
5592 DLLおよびPDBファイルを含む元のパッチのMSからのダウンロードはまだありますか?
更新:MSシンボルサーバーには5592 DLLバージョンのPDBファイルが含まれているように見えますが、DLLは含まれていません。(これが理にかなっているのかどうかは別の質問ですが、おそらくそれがこれらのDLLで機能する方法です。)
私は次のことを判断できました:
- 4053のPDB:
...\Cache\msvcr80.i386.pdb\7D5669C7431445CD84D149AE19FE3CD51\msvcr80.i386.pdb
- PDB for 5592(WinDbgがそれをロードするため):
...\cache\msvcr80.i386.pdb\3FA5DD7B7FAF4F2EAC5ABEDC03012DB21\msvcr80.i386.pdb
- 6195のPDB:
...Cache\msvcr80.i386.pdb\54C9E2F351544D1CB39517DC4B299EA81\msvcr80.i386.pdb