微軟有個 Microsoft Symbol Server 可讓你在開發的過程中提供你所有 .NET Framework 組件的偵錯資訊 (symbol debugging information),我之前也有文章介紹過如何在 Visual Studio 2008 設定,到了 Visual Studio 2010 設定變的更簡單些,支援的組件也更多,包括 .NET 2.0, 3.0, 3.5, 4.0 BCL, MVC1.0, 2.0,甚至於你可以從 SymbolSource.org 設定更多的符號檔 (*.pdb) 位置。
啟用 .NET Framework 原始碼逐步偵錯功能
1. 開啟 Visual Studio 2010 RTM 並點擊選單 [工具] / [選項] –> [偵錯] / [一般],並勾選 [啟用 .NET Framework 來源步進] ( 註: 這翻譯實在太糟糕了,建議: 啟用 .NET Framework 原始碼逐步偵錯 )
按下 [確定] 後,會出現一個提醒視窗告知會停用 Just My Code 的設定:
以及以下提示: ( 都是中文字,請各位務必要看 )
2. 請勾選 [Microsoft 符號伺服器],另外,如果 C 磁碟機不夠大,建議更換預設「快取此目錄中的符號」的儲存路徑:
按下 [確定] 後,就會開始從 Microsoft Symbol Server 開始下載 符號檔(*.pdb),可能會花一些時間下載,這要看你的網路速度如何。
就這樣兩個步驟即可設定完成。
執行逐步偵錯的方式
1. 先在專案中設定中斷點並按下 F5 開始偵錯,如果有組件符號檔尚未下載,這時會花些時間下載,但只會下載一次而已
2. 接著開啟 呼叫堆疊(Call Stack) 視窗,並在你想要檢視的地方 雙擊滑鼠(Double Click)
第一次點選的時候,它會出現 End User License Aggreement 請看完並按下 Accept 按鈕
只是每次開啟後都會出現以下錯誤(每次都會),有點惱人:
這是因為所有原始碼檔最後面多了一個奇怪的字元,不知為何加上去的:
最後,你就可以看到完整的 .NET Framework 原始碼了!
但並非所有組件都有提供參考用的原始碼,如果你選到這些類別就會出現以下「沒有可用來源」的畫面:
相關連結