首页 > 其他分享 >使用Visual Studio调试微软源代码

使用Visual Studio调试微软源代码

时间:2024-01-26 17:00:31浏览次数:27  
标签:启用 Visual Studio 选中 NET 源代码 调试

思维导航

前言

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

Visual Studio更多实用技巧

https://github.com/YSGStudyHards/DotNetGuide

取消选中启用仅我的代码

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

选中启用源链接支持

选中启用符号服务器

在“工具”->“选项”->“调试”->“符号”中,启用“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逐语句源代码调试:

DotNetGuide技术社区交流群

  • DotNetGuide技术社区是一个面向.NET开发者的开源技术社区,旨在为开发者们提供全面的C#/.NET/.NET Core相关学习资料、技术分享和咨询、项目推荐、招聘资讯和解决问题的平台。
  • 在这个社区中,开发者们可以分享自己的技术文章、项目经验、遇到的疑难技术问题以及解决方案,并且还有机会结识志同道合的开发者。
  • 我们致力于构建一个积极向上、和谐友善的.NET技术交流平台,为广大.NET开发者带来更多的价值和成长机会。

欢迎加入DotNetGuide技术社区微信交流群

标签:启用,Visual,Studio,选中,NET,源代码,调试
From: https://www.cnblogs.com/mq0036/p/17989765

相关文章

  • 在Linux Ubuntu系统中部署C++环境与Visual Studio Code软件
      本文介绍在LinuxUbuntu操作系统下,配置VisualStudioCode软件与C++代码开发环境的方法。  在文章VMware虚拟机部署LinuxUbuntu系统的方法中,我们介绍了LinuxUbuntu操作系统的下载、安装方法;本文则基于前述基础,继续介绍在LinuxUbuntu操作系统中配置VisualStudioCode软......
  • Visual Studio 2019 SSIS工具控制流增加约束以及数据流增加数据匹配达到增量抽取
    情况1:在配置控制流时,想在数据流前面进行数据的过滤或者是前置的数据记录数的判断,那可以在数据流前面增加SQL执行任务用来放置判断SQL语句,随后得在SQL执行任务编辑界面找到ResultSet(结果集),在右侧下拉选择项中选择单行(这里选择单行是因为写的SQL判断语句只输出一行值)随后在左侧菜......
  • 使用Visual Studio调试 .NET源代码
    前言在我们日常开发过程中常常会使用到很多其他封装好的第三方类库(NuGet依赖项)或者是.NET框架中自带的库。如果可以设置断点并在NuGet依赖项或框架本身上使用调试器的所有功能,那么我们的源码调试体验和生产效率会得到大大的提升。今天我们就一起来学习一下如何使用VisualStudio......
  • AndroidStudio配置问题
    最开始的显示这个错误 解决方法:关闭代理,手动去下载gradle文件,先在这个设置里把代理关闭  然后在settings里面把gradle目录改为这个:然后按照AndroidStudio的提示,去这个网址把7.2的gradle下载下来下载下来后,把7.2的压缩包以及解压后的文件都放入这个随机码的目录下,......
  • 自动评论脚本制作会用到哪些源代码!
    在数字时代,自动评论脚本已成为许多在线平台的必备工具,尤其在社交媒体、论坛和博客等平台上。自动评论脚本可以帮助用户自动生成、发布评论,节省了大量时间和精力,那么,自动评论脚本制作会用到哪些源代码呢?下面就为大家揭秘。一、Python语言Python语言因其简单易学、功能强大而成为自......
  • 《Visual Tree Convolutional Neural Network in Image Classification》阅读笔记
    论文标题《VisualTreeConvolutionalNeuralNetworkinImageClassification》图像分类中的视觉树卷积神经网络作者YuntaoLiu、YongDou、RuochunJin和PengQiao来自国防科技大学并行和分布式处理国家实验室初读摘要问题:在图像分类领域,随着深度学习的快速发展,卷......
  • DevEco Studio 常用设置【自用】
    设置为中文API参考设置悬浮始终定位打开的文件,单击预览免打开保存时自动格式化和热更新......
  • 【产品兼容认证】WhaleStudio 成功兼容TiDB数据库软件
    平凯星辰和白鲸开源宣布成功完成产品兼容认证北京,2023年12月27日-平凯星辰(北京)科技有限公司(以下简称平凯星辰)旗下的TiDB产品与白鲸开源的WhaleStudio已成功完成产品兼容性认证。这一重要合作旨在为全球客户提供更大的价值。关于WhaleStudioWhaleStudio是一款由Apache......
  • 【产品兼容认证】WhaleStudio 成功兼容TiDB数据库软件
    平凯星辰和白鲸开源宣布成功完成产品兼容认证北京,2023年12月27日-平凯星辰(北京)科技有限公司(以下简称平凯星辰)旗下的TiDB产品与白鲸开源的WhaleStudio已成功完成产品兼容性认证。这一重要合作旨在为全球客户提供更大的价值。关于WhaleStudioWhaleStudio是一款由Apache......
  • Visual Studio 中预置的代码片段
    代码片段功能可用位置#if创建 #if 指令和 #endif 指令。任何位置。#region创建 #region 指令和 #endregion 指令。任何位置。~创建包含类的终结期(析构函数)。在类中。attribute为派生自 Attribute 的类创建声明。在命名空间(包括全局命名空间)、......