在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逐语句源代码调试:

相关推荐
withoutfear11 小时前
IntelliJ IDEA卡顿内存分配不足和索引被频繁触发问题解决办法
java·ide·intellij-idea
an869500114 小时前
unity如何在visual studio中打断点debug
unity·游戏引擎·visual studio
cjp56015 小时前
012.UG二次开发,UG管道服务器与WPF管道通讯,传输JSON数据
c#
典典分享指南16 小时前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
jupyter·github·vim·idea·visual studio
jiushidt17 小时前
ArcGIS Pro Add‑in 打包流程详解
arcgis·c#·.net·arcgispro
寥落半伤感17 小时前
在Pycharm中一键迅速安装包及查看虚拟环境中包名的方法
ide·python·pycharm
进击的炸酱面18 小时前
如何在服务器中使用codex?代理配置一图详解
ide·vscode·ssh
半亩码田18 小时前
【.NET新特性·第17篇】EF Core 10 与 Aspire 13.1
python·flask·.net
持敬chijing18 小时前
VSCode 远程开发环境完整搭建指南:汉化、SSH 免密连接与版本更新锁定
ide·vscode·ssh
水饺编程21 小时前
第5章,[Win32 章节] :绘制平面直角坐标系
c语言·c++·windows·visual studio