在Visual Studio中调试 .NET源代码

前言

在我们日常开发过程中常常会使用到很多其他封装好的第三方类库(NuGet依赖项)或者是.NET框架中自带的库。如果可以设置断点并在NuGet依赖项或框架本身上使用调试器的所有功能,那么我们的源码调试体验和生产效率会得到大大的提升。今天我们就一起来学习一下如何使用Visual Studio调试.NET源代码。

Visual Studio更多实用技巧

取消选中启用仅我的代码

首先需要在在"工具"->"选项"->"调试"->"常规"中取消选中"启用仅我的代码"。

选中启用源链接支持

选中启用符号服务器

在"工具"->"选项"->"调试"->"符号"中,启用"Microsoft符号服务器"和"NuGet.org符合服务器"。

启用在模块加载时取消JIT优化(仅限托管)可选

在Visual Studio中启用"在模块加载时取消 JIT 优化(仅限托管)"功能是为了在调试代码时更容易地定位和解决问题。这个功能会防止 JIT 编译器对代码进行优化,从而使得调试器能够更准确地显示代码的执行过程。

在"工具"->"选项"->"调试"->"常规"中,启用"在模块加载时取消 JIT 优化(仅限托管)":

启用Visual Studio调试源码

注意:第一次设置完之后会加载的比较缓慢,需要耐心等等。

我们使用System.Text.Json来进行JSON字符串反序列化成.NET对象的源码调试,查看JsonSerializer.Deserialize方法的内部实现:

程序代码:

复制代码
    internal class Program
    {
        static void Main(string[] args)
        {
            var userInfoStr = "[{\"UserName\":\"追逐时光者\",\"Description\":\"一个热爱捣鼓的全栈软件工程师\",\"Sex\":\"男\"},{\"UserName\":\"大姚\",\"Description\":\"帅气小伙\",\"Sex\":\"男\"},{\"UserName\":\"小艺子\",\"Description\":\"超级大美女\",\"Sex\":\"女\"}]";
            var userInfoObj = JsonSerializer.Deserialize<List<UserModel>>(userInfoStr);
        }
    }

    public class UserModel
    {
        public string UserName { get; set; }
        public string Description { get; set; }
        public string Sex { get; set; }
    }

F11逐语句源代码调试:

相关推荐
品尚公益团队24 分钟前
C#在asp.net网页开发中的带cookie登录实现
前端·c#·asp.net
吴可可12330 分钟前
C#自定义CAD多段线零件实体
c#
CallmeFoureyes38 分钟前
使用 C# 提取 Word 文档中的表格数据
开发语言·c#·word
time展天11 小时前
.NET 10 使用 Microsoft.AspNetCore.OpenApi 实现 API 版本管理
microsoft·.net
不负信仰2 小时前
Visual Studio 三月更新 —— 打造专属自定义 Agent
ide·visual studio
祸心依旧2 小时前
Visual Studio 五月更新 —— 计划、评审、优化
运维·人工智能·visual studio
杰佛史彦明13 小时前
ElasticSearch中的分词器详解
大数据·elasticsearch·c#
czhc11400756634 小时前
710:CT分辨率;BGA;DBC;[ObservableProperty],[Required]
c#
我才是银古5 小时前
当 GIS 开发遇上 .NET:一个 GDAL 集成工具库的架构设计与实践
c#·gis·gdal
慕容引刀5 小时前
告别Commit信息纠结:使用Git AI Commit插件实现规范化提交
人工智能·git·github·visual studio code·visual studio