0

お客様のクラッシュダンプファイルには、

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
4

1 に答える 1

0

WinDbgpdbで (完全な) ダンプを分析するために必要なのはファイルだけです。WinDbg にはバイナリは必要ありませんが、Visual Stuido (2005) デバッガーにバイナリが必要なようです。

したがって、この場合は VS を使用せず、WinDbg を使用してこの特定のダンプを分析します。

于 2013-11-19T12:20:29.653 に答える