Visual Studio 2017中使用SourceLink調試ASP.NET Core源碼


背景

當我們在學習ASP.NET Core或者調試ASP.NET Core程序的時候,有時候需要調試底層代碼,但是當我們在Visual Studio中調試程序的時候,由於一些基礎庫或者第三方庫缺少pdb文件,所以調試這些庫的代碼的時候,會出現斷點不能進去的情況。

例如,在如下代碼中,我們希望調試一下View()方法,看看其中的內部實現

但是當我們點擊F11之后,程序會直接跳到下一步

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 15.3以上版本中已經集成了Source Link, 具體開啟方式如下

首先在 Options > Debugging > General中關閉Just My Code, 並啟用Enable Source Link Support

然后在 Options > Debugging > Symbols中啟用Microsoft Symbol Servers

最終效果

下面我們創建一個默認的asp.net core mvc站點,並以調試方式啟動項目。 這里我們還是將斷點打在HomeControllerIndex方法中。

當斷點到達return View()代碼塊時,我們點擊F11, Visual Studio會彈出以下窗口,提示你是否想要下載源文件進行調試

點擊確定之后,斷點就進入了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM