我正在使用 Visual Studio 2013 调试应用程序中的崩溃,并且调用堆栈显示 msxml6.dll。
我在 Windows 7 64 位上运行。该应用程序是 64 位应用程序。
我设置了 MS 符号服务器,但似乎我的 msxml6.dll 不一样/不匹配我从符号服务器获得的 pdb。
这是我在 msxml6.dll 上运行ChkMatch和来自符号服务器的 pdb 得到的输出。
Executable: C:\Windows\System32\msxml6.dll
Debug info file: C:\Development\SymbolServer\msxml6.pdb\959E73C66A974E269B0603DA498D5F392\msxml6.pdb
Executable:
TimeDateStamp: 5332e37e
Debug info: 2 ( CodeView )
TimeStamp: 5332de40 Characteristics: 0 MajorVer: 0 MinorVer: 0
Size: 35 RVA: 0010bcec FileOffset: 0010b0ec
CodeView format: RSDS
Signature: {b6fd5008-d95b-49c5-9228-b26ab92d9e80} Age: 2
PdbFile: msxml6.pdb
Debug info: 10 ( Unknown )
TimeStamp: 5332de40 Characteristics: 0 MajorVer: 565 MinorVer: 6526
Size: 4 RVA: 0010bce8 FileOffset: 0010b0e8
Debug information file:
Format: PDB 7.00
Signature: {959e73c6-6a97-4e26-9b06-03da498d5f39} Age: 4
Result: Unmatched (reason: Signature mismatch)
这是调试器中堆栈的顶部:
msxml6.dll!assign(IUnknown * * ppref=0x0000000002df12e0, void * pref=0x0000000001bd4180) Line 39 C++ msxml6.dll!NodeIteratorState::getNext(EnumVariant * pEnum=0x000000000042d600) Line 133 C++ msxml6.dll!DOMNodeList::nextNode(IXMLDOMNode * * ppNode=0x0000000000000000) Line 3064 C++
所以我的问题是 - 我如何获得正确的 pdb? 如果没有正确的 pdb,堆栈信息将毫无用处。
编辑 我从这里下载了符号: https ://developer.microsoft.com/en-us/windows/hardware/download-symbols 仍然没有运气获得与我机器上的内容相匹配的 pdb。