2009-10-10 158 views
0

我使用WinDbg從託管代碼(C#,爲任何CPU構建的控制檯應用程序)加載故障轉儲。我正在調試一個x64平臺。我已將相關的PDB文件放入符號路徑中。WinDbg符號加載問題

但是,當我使用lm命令查看加載模型時,無法加載控制檯EXE文件應用程序的符號。我試圖執行.reload /f,但我仍然無法爲我的應用程序加載符號。

順便說一句:我有我的應用程序的完整源代碼。我的應用程序是爲.NET 3.0構建的,但我正在調試的計算機上安裝了最新的.NET 3.5 + SP1。錯配是否會成爲問題?

如何進一步分析此問題?

回答

1

首先,我會嘗試使用!sym noisy,然後重新加載模塊。您應該看到它正在加載的模塊的信息。如果你有一個本地緩存,你可能會看到一個共同的狀態是E_PDB_CORRUPT。首先從本地緩存中刪除符號文件,然後使用.reload /f

如果找不到符號,請確保您有適當的符號包可用或Use the Microsoft Symbol Server to obtain debug symbol files

+0

如果需要顯示.cs文件的行號信息(執行如clrstack之類的命令時),是否需要設置源文件路徑?我的困惑是我很困惑Windbg是否能夠從託管代碼(EXE/DLL)或相關的PDB文件中提取行號信息? – George2 2009-10-11 16:23:39

+0

謝謝克里斯,你的回覆給了我很多幫助。我遵循了你的建議,但有一個新問題,如果你可以看看,很感激。我的新問題張貼在這裏, http://stackoverflow.com/questions/1552927/symbol-issue-when-debugging-c-code – George2 2009-10-12 05:53:02