
背景
當我們在學習ASP.NET Core或者調試ASP.NET Core程式的時候,有時候需要調試底層代碼,但是當我們在Visual Studio中調試程式的時候,由于一些基礎庫或者第三方庫缺少pdb檔案,是以調試這些庫的代碼的時候,會出現斷點不能進去的情況。
例如,在如下代碼中,我們希望調試一下View()方法,看看其中的内部實作
但是當我們點選F11之後,程式會直接跳到下一步
Source Link
SourceLink是一組用于描述可嵌入到符号、二進制檔案和包中的源代碼控制中繼資料的包和規範。官網連結:https://github.com/dotnet/sourcelink
SourceLink目前支援的源代碼來源
- Github
- Azure DevOps(VSTS)
- TFS
- Gitlab
- Bitbucket
這裡個人了解就是如果你調試的程式集是通過Nuget導入的,并且該程式集的源碼是寄存在Github, VSTS等源代碼平台中的,使用Source Link,調試階段就會自動從源代碼平台下載下傳指定代碼,并進入斷點調試
标注:這裡需要引入.NET Symbols的概念,我對這個了解的不是太深,希望有大牛給解釋一下, 我後續再做補充。相關文章Publishing and Consuming Symbols and Source for Debugging
如何在Visual Studio 2017中使用Source Link
Visual Studio 2017 15.3以上版本中已經內建了Source Link, 具體開啟方式如下
首先在 Options > Debugging > General中關閉Just My Code, 并啟用Enable Source Link Support
然後在 Options > Debugging > Symbols中啟用Microsoft Symbol Servers
最終效果
下面我們建立一個預設的asp.net core mvc站點,并以調試方式啟動項目。 這裡我們還是将斷點打在
HomeController
的
Index
方法中。
當斷點到達
return View()
代碼塊時,我們點選F11, Visual Studio會彈出以下視窗,提示你是否想要下載下傳源檔案進行調試
點選确定之後,斷點就進入了