Visual Studio中调试 .NET源代码的实现步骤

 更新时间:2024年03月19日 09:50:59   作者:追逐时光者  
在调试 .NET 应用程序时,有时你可能需要查看其他人的源代码,本文主要介绍了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逐语句源代码调试:

图片

图片

图片

到此这篇关于Visual Studio中调试 .NET源代码的实现步骤的文章就介绍到这了,更多相关VS调试 .NET源代码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • asp.net viewstate 回发机制

    asp.net viewstate 回发机制

    ASP.NET中,为了模拟Winform中的事件响应机制,微软的工程师真是煞费苦心,发明了“回发”机制,使得编写WEB页面变得和Winform一样简单。
    2010-03-03
  • ASP.NET Core使用GraphQL第一章之Hello World

    ASP.NET Core使用GraphQL第一章之Hello World

    这篇文章主要给大家介绍了关于ASP.NET Core使用GraphQL第一章之Hello World的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • 详解可跨域的单点登录(SSO)实现方案【附.net代码】

    详解可跨域的单点登录(SSO)实现方案【附.net代码】

    本篇文章主要介绍了可跨域的单点登录(SSO)实现方案,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Asp.Net生成静态页面的实现方法

    Asp.Net生成静态页面的实现方法

    这篇文章介绍了Asp.Net生成静态页面的实现方法,有需要的朋友可以参考一下
    2013-10-10
  • div弹出层的ajax登录(Jquery版+c#)

    div弹出层的ajax登录(Jquery版+c#)

    这次主要的分享就是div+css+jquery,你可以改版成你要的登录,随意改版!后台代码由于时间限制,没有完成,里面有些乱,重点分享界面,还望理解
    2012-10-10
  • VS 2015开发跨平台手机应用的配置教程

    VS 2015开发跨平台手机应用的配置教程

    这篇文章主要给大家介绍了关于VS 2015开发跨平台手机应用配置的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • Asp.Net MVC中配置Serilog的方法

    Asp.Net MVC中配置Serilog的方法

    Serilog是一款比较优秀的logging framework,Serilog只支持.NET 4.5以上的版本。下面这篇文章将会通过图文及示例代码的形式给大家介绍Asp.Net MVC中配置Serilog的方法,有需要的朋友们可以参考借鉴,下面来跟着小编一起学习学习吧。
    2016-12-12
  • DataGridView右键菜单自定义显示及隐藏列功能

    DataGridView右键菜单自定义显示及隐藏列功能

    WinForm程序中表单的列可自定义显示及隐藏,是一种常见的功能,对于用户体验来说是非常好的。这篇文章主要介绍了DataGridView右键菜单自定义显示及隐藏列功能,需要的朋友可以参考下
    2019-11-11
  • asp.net 类库中使用ConfigurationManager.ConnectionStrings

    asp.net 类库中使用ConfigurationManager.ConnectionStrings

    类库中使用ConfigurationManager.ConnectionStrings的步骤。
    2009-06-06
  • .NET中用ICSharpCode.TextEditor自定义代码折叠与高亮

    .NET中用ICSharpCode.TextEditor自定义代码折叠与高亮

    这篇文章主要给大家介绍了.NET中用ICSharpCode.TextEditor自定义代码折叠与高亮的相关资料,文中通过示例代码与图片介绍的很详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02

最新评论