这是我的情况。我正在尝试在远程服务器上调试WCF服务(Windows 2012 R2 Standard)。我在运行Visual Studio 12的Windows 7专业系统上。在弄清楚如何安装远程调试器并连接到它之后,我收到了一个符号未加载的错误。找到模块窗口后,我发现只有4个找到了93个PDB文件(我的项目PDB)。经过大量研究后,我在“选项”菜单中发现了“符号”窗口,并确保设置了“缓存符号目录”,并将Microsoft符号服务器作为我的一个位置。点击加载所有符号后,VS 2012加载除了两个文件sppc.pdb和slc.pdb以外的所有文件。调试符号不会加载slc.dll和sppc.dll
我运行了symchk 。/R并取得了以下的输出:使用Symchk的命令来尝试专门从Microsoft符号服务器加载PDB文件在不同的论坛
C:\Program Files\Debugging Tools for Windows (x64)>symchk *.* /r
SYMCHK: FAILED files = 0
SYMCHK: PASSED + IGNORED files = 221
有人建议。所以当我跑了,我得到以下几点:
SYMCHK: slc.dll FAILED - slc.pdb mismatched or not found
所以我检查,看看我是否正确使用它。我跑以下和下载许多PDBS到一个临时目录,但我需要的不是那些:
C:\Program Files\Debugging Tools for Windows (x64)>symchk /r C:\windows\system32 /s srv*C:\Temp\Symbols*http://msdl.microsoft.com/download/symbols
*** Some output removed for brevity ***
SYMCHK: slc.dll FAILED - slc.pdb mismatched or not found
SYMCHK: snacnp.dll FAILED - SnacNp.pdb mismatched or not found
SYMCHK: sppc.dll FAILED - sppc.pdb mismatched or not found
于是我就syschk对文件中的一个冗长,看是否会告诉我什么:
C:\Program Files\Debugging Tools for Windows (x64)>symchk /v C:\windows\system32\slc.dll
[SYMCHK] Searching for symbols to C:\windows\system32\slc.dll in path C:\Temp\Symbols
DBGHELP: Symbol Search Path: C:\Temp\Symbols
[SYMCHK] Using search path "C:\Temp\Symbols"
DBGHELP: No header for C:\windows\system32\slc.dll. Searching for image on disk
DBGHELP: C:\windows\system32\slc.dll - OK
SYMSRV: C:\Temp\Symbols\slc.pdb\BEC5C21CFFE144E48E70042F52FF1D271\slc.pdb not found
DBGHELP: slc - no symbols loaded
[SYMCHK] MODULE64 Info ----------------------
[SYMCHK] Struct size: 1680 bytes
[SYMCHK] Base: 0x000007FF70190000
[SYMCHK] Image size: 45056 bytes
[SYMCHK] Date: 0x4a5be063
[SYMCHK] Checksum: 0x00011b30
[SYMCHK] NumSyms: 0
[SYMCHK] SymType: SymNone
[SYMCHK] ModName: slc
[SYMCHK] ImageName: C:\windows\system32\slc.dll
[SYMCHK] LoadedImage: C:\windows\system32\slc.dll
[SYMCHK] PDB: ""
[SYMCHK] CV: RSDS
[SYMCHK] CV DWORD: 0x53445352
[SYMCHK] CV Data: slc.pdb
[SYMCHK] PDB Sig: 0
[SYMCHK] PDB7 Sig: {00000000-0000-0000-0000-000000000000}
[SYMCHK] Age: 0
[SYMCHK] PDB Matched: TRUE
[SYMCHK] DBG Matched: TRUE
[SYMCHK] Line nubmers: FALSE
[SYMCHK] Global syms: FALSE
[SYMCHK] Type Info: FALSE
[SYMCHK] ------------------------------------
SymbolCheckVersion 0x00000002
Result 0x00010001
DbgFilename slc.dbg
DbgTimeDateStamp 0x00000000
DbgSizeOfImage 0x00000000
DbgChecksum 0x00000000
PdbFilename slc.pdb
PdbSignature {BEC5C21C-FFE1-44E4-8E70-042F52FF1D27}
PdbDbiAge 0x00000001
[SYMCHK] [ 0x00000000 - 0x00010001 ] Checked "C:\windows\system32\slc.dll"
SYMCHK: slc.dll FAILED - slc.pdb mismatched or not found
SYMCHK: FAILED files = 1
SYMCHK: PASSED + IGNORED files = 0
我知道这些文件是软件许可客户端的一部分,虽然我不知道他们需要加载以进行调试的理由,但事实是VS想要它。
任何人有任何想法如何获得PDB或压制符号文件被加载的需要?
2015-10-28
Michael