如何在Visual Studio 2019 中针对.NET Core 原始档进行侦错

有些时候,想要知道.NET BCL 中的程式码究竟做了什么事情,此时,可以依照这篇文章的教学步骤说明,先进行Visual Studio 2019 的相关设定,以便建立的专案可以针对Base Class Library的API 进行侦错;在这里将会建立一个.NET Core 2.2 版本的主控台应用程式专案来展示相关过程。
首先,打开Visual Studo 2019
从Visual Studio 2019 功能表来点选[工具] > [选项]
在选项对话窗开启之后,点选[侦错] > [一般]
请勾选[启用.NET Framework 原始码逐步侦错]
此时,会有一个警告对话窗出现,启用.NET Framework 原始码逐步侦错时会自动停用Just My Code ,请直接点选[确定] 按钮
在选项对话窗开启之后,点选[侦错] > [符号]
请勾选[符号档(.pdb) 位置] 标签下方的[Microsoft 符号伺服器] 选项,并且在下方的[快取此目录中的符号] 标签下方的文字输入盒,输入一个目录将要用来储存从网路下载的符号档Symbol File .pdb 档案。
最后,点选[确定] 按钮
现在,可以建立一个.NET Core 2.2 的主控台应用程式,并且填入底下程式码。
在  

list.Add("123");

 行叙述上设定一个中断点

开始执行这个专案,此时,因为是第一次执行.NET 原始码逐步侦错,所以,会下载相关符号档,所以,需要花些时间,之后程式就会停在刚刚设定的中断点上。
按下[F11] 或者点选[逐步执行] 工具列按钮,就会到底下的内容,现在Visual Studio 切换List.cs 这个视窗中的Add 方法上,这些程式码就是.NET BCL 上的原始码。
而在刚刚设定的下载的符号档Symbol File .pdb 档案目录中,将会看到成功下载的符号档案

class Program
{
static void Main(string[] args)
{
List<string> list = new List<string>();
list.Add("123");
Console.WriteLine("Hello World!");Console.WriteLine("Press any key for continuing...");
Console.ReadKey();
}
}

参与评论