您是否曾经需要调试并进入依赖于 NuGet 或 .NET 库的代码,而这些库并没有构建为您的解决方案的一部分? 现在,调试它们并不像调试作为解决方案一部分的项目那么容易。从 Visual Studio 2022 预览3开始,我们在解决方案资源管理器中添加了一个新的“External Sources,外部源代码”节点,这将使调试外部源文件变得更加容易。这个节点在调试时出现,它将显示托管模块的源代码,其中加载的符号包含 Source Link 或 Source Server 信息。您可以轻松地浏览这些源文件,并在需要时通过放置断点进行调试。

  Visual Studio 2022 团队正在努力实现个人和团队生产力的承诺。调试外部源代码是诊断工具中的一项功能,这只是我们正在研究的令人兴奋的特性之一。

解决方案资源管理器中的外部源代码

  该特性向 Solution Explorer 中添加了一个新的顶级节点,当您处于调试会话时,该节点就会出现,任何加载的带有 Source Server 信息的符号文件(.pdb)都将出现在该节点下。

  您可以通过展开树项来浏览文件。然后,双击一个项目从 Source Server 下载文件,并在编辑器中打开它。如果将模块设置为自动加载符号,则节点将在整个调试会话中与模块源代码保持一致。

  如果你正在使用具有多个外部库的应用程序,这些库的组件已经发布到Source Server,例如 Newtonsoft.Json、CsvHelper、xUnit.net 等。这个特性将让你更容易地浏览这些源代码,并在需要时调试它们。

设置要求

  可以通过调试设置下的选项来管理符号加载和源代码下载。

  按照下面的设置检查表,确保模块可以出现在解决方案资源管理器的“外部源代码”节点中。

  1. Tools -> Options -> Debugging 的选项

    Disable Just My Code:这将允许调试器尝试定位解决方案之外的代码符号。

  2. Tools -> Options > Debugging -> Symbols 的选项

    Enable Microsoft Symbol Server:这允许调试器尝试定位 Microsoft Symbol Server 上的符号

    Enable NuGet.org Symbol Server:这允许调试器尝试在 NuGet.org Symbol Server 上定位符号

    Enable Load All Modules:这允许调试器加载所有模块的符号。(注意,这些选项将加载所有可用的符号,你可以通过选择“ Load only specified modules,只加载指定的模块”和指定包含的模块来限制符号加载。)

  3. 您可能还需要检查 Debug -> Windows -> Modules,以查看当前哪些模块加载到内存中,并在需要时手动加载任何模块。

  4. 一旦双击“外部源代码”中的项目,可能会提示您从服务器下载源代码; 单击“接受”,您就可以在编辑器中查看该项目的源代码。

让我们知道你的想法!  

  这是为 Visual Studio 创建一流的外部源代码调试体验的第一步。我们很快也会为本地代码带来这种改变。我们非常感谢您花时间尝试我们的最新功能,我们希望您能提供反馈,感谢!

原文链接

  https://devblogs.microsoft.com/visualstudio/debugging-external-sources-with-visual-studio/

【译】使用 Visual Studio 调试外部源代码的更多相关文章

  1. 在ASP.NET 5项目中使用和调试外部源代码包

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:由于在ASP.NET 5中,项目依赖都是通过"包"来引用,所以使用 ...

  2. 在 Visual Studio 调试器中指定符号 (.pdb) 和源文件

    查找并指定符号文件和源文件:指定符号加载行为.使用符号和源服务器上:加载符号自动或在要求.   内容 查找符号 (.pdb) 文件 查找源文件   查找符号 (.pdb) 文件 说明 在之前的 Vis ...

  3. 【广州.NET社区推荐】【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性

    原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio ...

  4. Visual Studio调试之断点进阶篇

    Visual Studio调试之断点进阶篇 在上一篇文章Visual Studio调试之断点基础篇里面介绍了什么是断点,INT 是Intel系列CPU的一个指令,可以让程序产生一个中断或者异常.程序中 ...

  5. Visual Studio调试之断点基础篇

    Visual Studio调试之断点基础篇 我曾经问过很多人,你一般是怎么调试你的程序的? F9, F5, F11, F…… 有很多书和文章都是介绍怎么使用Visual Studio编写WinForm ...

  6. 调试 - Visual Studio调试

    Visual Studio - 调试 异常处理机制 windows预定义了一系列的异常错误码,每种程序异常都有一个对应的错误码,windows系统将这些类似键值对关系的数据存储在异常处理表中(称为SE ...

  7. Visual Studio调试之断点技巧篇

    原文链接地址:http://blog.csdn.net/Donjuan/article/details/4618717 函数断点 在前面的文章Visual Studio调试之避免单步跟踪调试模式里面我 ...

  8. Visual Studio调试之符号文件

    原文链接地址:http://www.cnblogs.com/killmyday/archive/2009/10/14/1582882.html 前面在不能设置断点的检查步骤和Visual Studio ...

  9. [转]Visual Studio调试之符号文件

    http://www.cnblogs.com/killmyday/archive/2009/10/14/1582882.html 前面在不能设置断点的检查步骤和Visual Studio调试之断点进阶 ...

随机推荐

  1. Spring Cloud Gateway限流实战

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. 【IDEA】字体大小和类型

    字体大小和类型 2020-09-08  09:06:21  by冲冲 1.工具界面的字体 2.代码的字体 注意:如果已经设置颜色主题,则还需要设置颜色主题的字体,才能生效.

  3. 【Design Patterns】(1)概述

    设计模式 -- 概述 2019-07-17  22:43:32  by冲冲 1. 简介 ① 设计模式 是软件开发人员在软件开发过程中,针对一般问题的最佳解决方案,该方案能够被程序员反复应用于解决类似问 ...

  4. 【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析

    问题描述 如何在Windows环境中,不安装第三方软件的情况下(使用Windows内置指令),如何抓取网络包呢?并且如何转换为Wireshark 格式呢? 操作步骤 1) 以管理员模式打开CMD,使用 ...

  5. CF1445E four points

    我们不妨枚举四个点的移动方向. 那我们可以直接算出在该情况的最优的答案. #include<iostream> #include<cstdio> #include<alg ...

  6. Atcoder Typical DP Contest S - マス目(状压 dp+剪枝)

    洛谷题面传送门 介绍一个不太主流的.非常暴力的做法( 首先注意到 \(n\) 非常小,\(m\) 比较大,因此显然以列为阶段,对行的状态进行状压.因此我们可以非常自然地想到一个非常 trivial 的 ...

  7. LOJ 2372 -「CEOI2002」臭虫集成电路公司(轮廓线 dp)

    题面传送门 u1s1 似乎这题全网无一题解?那就由我来写篇题解造福人类罢(伦敦雾 首先看这数据范围,一脸状压.考虑到每一层的状态与上面两层有关,因此每层转移到下一层的有用信息只有两层,需要用三进制保存 ...

  8. js实现递归菜单无限层

    /*动态加载菜单*/ function dynamicMenu(data){ if (userID != "admin"){ //1.清空所有菜单 $("#menuLis ...

  9. JDBC(2):JDBC对数据库进行CRUD

    一. statement对象 JDBC程序中的Connection用于代表数据库的链接:Statement对象用于向数据库发送SQL语句:ResultSet用于代表Sql语句的执行结果 JDBC中的s ...

  10. Mysql多字段模糊查询

    MySQL同一字段多值模糊查询 一. 同一字段多值模糊查询,使用多个or进行链接,效率不高,但没有更好的解决方案.(有看到CHARINDEX 关键字,可查询结果并不是模糊,举个栗子 例如SELECT ...