在本快速入门中,你将了解如何使用Visual Studio调试器调试 ASP.NET Core应用程序代码。 本文提供了一种快速方法,用于了解调试器中工作的一些基本功能。
如果没有Visual Studio,可以从Visual Studio下载页安装 免费试用版。
创建新项目
先创建一个新项目,这样就有一些代码可以在调试器中查看。
打开 Visual Studio 并创建新项目。
如果未打开 “开始”窗口 ,请选择“ 文件>启动窗口”。
在“开始”窗口中,选择“ 创建新项目”。
在“ 创建新项目 ”窗口中,设置筛选器并搜索项目模板。
在 “搜索模板 ”框中,输入 Web 应用。
展开 “语言 ”下拉列表,然后选择 “C#”。
在结果列表中,选择 C# 的 ASP.NET Core Web 应用(Razor Pages) 模板,然后选择 Next。
如果未看到适用于 C# 的 ASP.NET Core Web 应用(Razor Pages)模板,请选择不带代码的 Continue 选项。
选择 Tools>获取工具和功能...,这将打开 Visual Studio 安装程序。
在“安装程序”窗口中,选中ASP.NET 和 Web 开发工作负载的复选框,然后选择Modify。
你的 Visual Studio 安装将更新为包含所选的 ASP.NET 工作负载。
更新完成后,选择 “文件>开始”窗口,并按照 前面的说明 选择所需的模板。
配置新项目:
输入 Project 名称和 Solution 名称,或使用默认值。
使用默认 位置 或选择浏览(...)在不同的文件夹中创建项目。
选择“下一步”。
使用建议的目标 Framework(默认值为 .NET 10.0 长期支持)。
对于其他设置,请使用默认值。
选择“创建”。
Visual Studio创建新项目,并将项目文件添加到指定文件夹中。
更新项目代码
更新项目模板提供的某些代码,以便在调试器中测试更多语句。
在 解决方案资源管理器 窗格中,展开 <project-name>\Pages 节点,然后选择 Privacy.cshtml 项。
Privacy.cshtml 文件将在代码编辑器中打开。
在文件中找到以下代码部分,并将其替换为提供的代码片段:
@{ ViewData["Title"] = "Privacy Policy"; }替换代码片段:
@{ ViewData["Title"] = "Privacy Policy"; <label>@PrivacyModel.PrivacyMessage</label> }在 解决方案资源管理器 中,展开 <project-name>\Pages\Privacy.cshtml 节点,然后选择 Privacy.cshtml.cs 项。
Privacy.cshtml.cs文件将在代码编辑器中打开。
在文件中找到以下代码部分,并将其替换为提供的代码片段:
public void OnGet() { }替换代码片段:
public static string? PrivacyMessage { get; set; } public void OnGet() { LinkedList<int> result = DoWork(); PrivacyMessage = "Result of work: " + result.First.Value + ", " + result.First.Value; } private static LinkedList<int> DoWork() { LinkedList<int> c1 = new(); c1.AddLast(10); c1.AddLast(20); LinkedList<int> c2 = new(c1); return c2; }
设置断点
断点是一种标记,用于指示 Visual Studio 应在何处暂停正在运行的代码。 设置断点后,可以查看变量的当前值,检查内存的行为,并检查代码的特定分支是否正在运行。 断点是调试中最基本的功能。
若要设置断点,请在代码中找到对
DoWork函数的调用,然后在同一行的左侧边栏中单击。设置断点后,对应代码行左侧的边栏中会显示一个红点。
使用 F5 键盘快捷方式(或选择“ 调试>开始调试”)开始调试。
当网页在浏览器窗口中打开时,选择页面顶部的 “隐私 ”链接。
代码执行会在调用
DoWork函数之前立即暂停。调试器会在设置断点的位置暂停。 黄色箭头标识调试器暂停应用执行的语句。
设置条件断点
如果你在循环或递归中设置了断点,或者有许多需要频繁单步调试的断点,请使用 条件断点。
此方法有助于确保代码仅在满足特定条件时暂停执行。 条件断点可以节省时间,还能使调试难以重现的问题变得更容易。
逐步讲解你的代码
Visual Studio提供了几种不同的方法来指示调试器继续执行应用。 以下示例演示了一个有用的命令,用于演练代码。
当代码在断点处暂停时,将鼠标悬停在语句 return c2; 上,直到看到绿色的 单击以运行(运行到此处)
图标。 选择图标。
应用继续执行,并在你单击该按钮时所在的代码行处暂停。
用于单步执行代码的常见键盘命令包括 F10 和 F11。 有关更深入的说明,请参阅 “首先查看调试器”。
检查数据提示中的变量
可以使用 数据提示 功能检查变量的状态。
在当前代码行(由黄色执行指针标记)中,将鼠标悬停在
c2对象上以查看数据提示。
数据提示显示变量的
c2当前值,并允许检查其属性。调试时,如果发现某个变量的值出乎意料,那程序中很可能存在缺陷。 这个缺陷可能出在调用该变量的代码中,也可能出在前一行代码中。
展开数据提示以查看
c2对象的当前属性值。若要在代码执行过程中继续检查
c2的值,请选择数据提示上的 图钉
图标。固定操作使数据提示保持打开状态。 代码执行过程中,固定提示中的值会变化,以显示监视对象的当前状态。
您可以将固定提示移动到 IDE 中的任意位置,这样它就不会妨碍您在调试时查看其他项。