Visual Studio 2008(非 Express 版)支援直接偵錯進入 .NET Framework 原始碼,需安裝 QFE 修正偵錯器 DLL、調整偵錯選項、設定符號伺服器與快取路徑。本文以 Windows Forms 專案為例,逐步圖解從斷點命中、載入符號、接受 EULA 到逐步執行框架代碼的完整流程。
前置條件
偵錯選項設定
- Tools → Options → Debugging → General
- 取消勾選 Enable Just My Code
- 勾選 Enable Source Server Support
- 若為 VB 設定檔,先點左下 Show All Settings。

符號檔設定
- 切換至 Symbols 頁籤
- 符號檔位置:
https://referencesource.microsoft.com/symbols
- 指定本地快取資料夾(需讀寫權限)
- 勾選 Search the above locations only when symbols are loaded manually

實戰偵錯流程
- 建立 C# Windows Forms 專案,在
Form_Load 設斷點;
- F5 執行,命中斷點後開啟 Call Stack 視窗(Ctrl+Alt+C);
- 右鍵
System.Windows.Forms.dll → Load Symbols,等待下載(約 10 MB,首次較久,後續走快取);
- 呼叫堆疊幀字體變黑、顯示行號,表示符號已載入;
- 按 F11 Step Into 進入框架代碼,首次會彈出 EULA,點擊 Accept 後原始碼自動下載顯示;
- 若目標 DLL 不在呼叫堆疊(如
System.Drawing.dll),開啟 Modules 視窗(Ctrl+Alt+U),右鍵該模組 → Load Symbols。

注意事項
- 每次偵錯 Session 皆需手動 Load Symbols(但第二次不再下載);
- EULA 僅出現一次;
- 原始碼為參考用,不可修改;
- 若專案目標 .NET 版本與符號不符,可能無法對應。