Windows 在哪里可以买到VC++;2005年可再发行版本8.0.50727.5592,包括PDB?

Windows 在哪里可以买到VC++;2005年可再发行版本8.0.50727.5592,包括PDB?,windows,visual-c++,debug-symbols,winsxs,Windows,Visual C++,Debug Symbols,Winsxs,有时,我们客户的崩溃转储文件将包含对 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:

有时,我们客户的崩溃转储文件将包含对

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()被另一个补丁取代,并且,不包含5592版本,而只包含6195版本的CRT/MFC/。。。DLL

我们的可执行文件的清单指向版本
8.0.50727.4053
,但这没有帮助,因为这个版本被5592取代,后来被6195取代。SxSTrace输出如下:(只需忽略德语文本并查看版本号)

现在,也许我可以从客户的PC上获得准确的DLL,但这仍然只剩下DLL,而且我仍然没有任何调试符号(PDB文件)

因为,查看我的转储(例如,对于内核32),我可以看到通常所有系统DLL都应该从MS symbol服务器(或其缓存)加载--

我必须假设微软从他们的symbol服务器中清除了这些文件的5592版本,从而有效地防止了任何有用的调试,如果客户PC包含2011年4月的更新,但不包括2011年6月的更新。从MS页面可以推断,这些更新包含在Windows Update中,因此如果客户的更新机制不完整,我真的无能为力

是否仍有从MS下载的原始修补程序包含5592 DLL和PDB文件


更新:MS symbol服务器似乎确实包含5592 DLL verison的PDB文件,但它不包含DLL。(现在,这是否有意义是另一个问题,但也许这就是它处理这些DLL的方式。)

我可以确定以下几点:

  • 4053的PDB:
    …\Cache\msvcr80.i386.PDB\7D5669C7431445CD84D149AE19FE3CD51\msvcr80.i386.PDB
  • 5592的PDB(因为WinDbg确实加载了它):
    ..\cache\msvcr80.i386.PDB\3FA5DD7B7FAF4F2EAC5ABEDC03012DB21\msvcr80.i386.PDB
  • 6195的PDB:
    …Cache\msvcr80.i386.PDB\54c9e2f35144d1cb39517dc4b299ea81\msvcr80.i386.PDB

    • 使用WinDbg分析(完整)转储只需要
      pdb
      文件-WinDbg不需要二进制文件,但Visual Stuido(2005)调试器似乎确实需要二进制文件


      因此,在这种情况下,不要使用VS,而是使用WinDbg来分析这个特定的转储。

      是的,这听起来很有道理,他们第一次更新失败了,很快就替换了它。您需要请求客户端安装最新更新。指出他们目前的版本是borken是一个明显的动机。@HansPassant-是的,我们无论如何都要指出这一点。但这无助于我分析这个垃圾场。(这不像是一次可复制的碰撞,而是一次随机碰撞。)
      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".
      
      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