︿
Top

2017年2月24日 星期五

How to debug to .NET Framework Source in Visual Studio 2015

前言

最近因為想要進入 .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"

沒有留言:

張貼留言