前言
最近因為想要進入 .NET Framework 的原始碼進行 Debug, 以了解程式碼實際運作的過程; 查了 微軟官網 / StackOverflow / SymbolSource 的文章, 都無法運作, 最後找到參考文件5..的作法, 才算完成. 茲整理如下, 以供留存參考.
環境
1.. Windows 10 : 版本 10.0.14393
2.. Visual Studio 2015 with Update 3
重要設定
1.. [偵錯] / [符號] : 自行設定快取目錄, 並將 Microsoft 符號伺服器打 v, 以下載 .PDB 檔
2.. [偵錯] / [一般] :
(1) [ ] 啟用 Just My Code : Disable just my code
(2) [V] 啟用 .NET Framework 原始碼逐步偵錯 : Enable .NET framework source stepping
(3) [ ] 不進入屬性和運算子: Disable step over properties and operators
--> 若打 V, 則 Console.WriteLine("....") 將不會進入原始碼偵錯, 因為它的進入點是一個 get { ...} 的屬性, 如 範例圖片(1).
(4) [V] 啟用來源伺服器支援 : Enable source server support
--> 這樣才會下載原始程式碼 (from https://referencesource.microsoft.com/ )
(5) [ ] 原始檔必須完全符合原始版本 : Disable require source files to exactly match the original version
範例圖片
(1) Debug 至 Console.WriteLine("..."); 請注恴, 它是寫在 get {...} 的區塊裡.
圖片看到的原始程式檔, 位於
C:\SymbolCache\src\Source\01586.00\Source\ndp\clr\src\BCL\system\console.cs
參考文件
1.. MSDN, "How to: Debug .NET Framework Source "
2.. StackOverflow, "Cannot step into .NET framework source code "
3.. StackOverflow, "How do you enable "Enable .NET Framework source stepping?"
4.. SymbolSource, "Your source for debugging symbols... and sources (Visual Studio) "
5.. Microsoft, "Configure Visual Studio 2013 for debugging .NET framework"
沒有留言:
張貼留言