使用Visual Studio调试微软源代码
前言
在我们日常开发过程中常常会使用到很多其他封装好的第三方类库(NuGet依赖项)或者是.NET框架中自带的库。如果可以设置断点并在NuGet依赖项或框架本身上使用调试器的所有功能,那么我们的源码调试体验和生产效率会得到大大的提升。今天我们就一起来学习一下如何使用Visual Studio调试.NET源代码。
Visual Studio更多实用技巧
取消选中启用仅我的代码
首先需要在在“工具”->“选项”->“调试”->“常规”中取消选中“启用仅我的代码”。
选中启用源链接支持
启用在模块加载时取消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逐语句源代码调试:
DotNetGuide技术社区交流群
- DotNetGuide技术社区是一个面向.NET开发者的开源技术社区,旨在为开发者们提供全面的C#/.NET/.NET Core相关学习资料、技术分享和咨询、项目推荐、招聘资讯和解决问题的平台。
- 在这个社区中,开发者们可以分享自己的技术文章、项目经验、遇到的疑难技术问题以及解决方案,并且还有机会结识志同道合的开发者。
- 我们致力于构建一个积极向上、和谐友善的.NET技术交流平台,为广大.NET开发者带来更多的价值和成长机会。
2024-01-26 16:59:11【出处】:https://www.cnblogs.com/Can-daydayup/p/17989098
=======================================================================================
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/17989765
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
2021-01-26 伪对象、桩对象、模拟对象|单元测试
2021-01-26 使用.net中的API网关模式封装微服务
2017-01-26 Log4net
2014-01-26 根据日期计算星期几----蔡勒(Zeller)公式推导
2014-01-26 批处理万年历(包括农历日期),任一天是星期几的算法
2014-01-26 根据日期推算星期和历法由来
2014-01-26 闰年的计算方法