2015-10-28 68 views
0

這是我的情況。我正在嘗試在遠程服務器上調試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或壓制符號文件被加載的需要?

回答

0

Microsoft不提供用於SLC的PDB以防止創建裂縫來激活Windows。

運行VS2012,轉至OptionsDebuggingautoamtically load symbols for: "all symbols, unless excluded"。點擊藍色鏈接並將SLC添加到排除列表中。

現在VS跳過加載PDB。

+0

感謝您的回覆。我試過了你的步驟,所有文件都有一個狀態符號加載或加載禁用包含/排除。然而,斷點仍然不會加載,因爲「沒有符號已經加載了這個文件 – Michael

+0

張貼錯誤的一些圖片。也許你混合釋放/調試配置 – magicandre1981

相關問題