内容提要
Visual Studio 对其调试工具进行了重大改进,包括断点组、升级的文本可视化工具、调用堆栈搜索、并行堆栈窗口改进、持久重新附加到调试器进程、项目级别的步进过滤器调试、CMake 调试器、更智能更快速的外部源调试、跨平台调试支持和性能升级。这些更新旨在提升调试体验并提高开发者的生产力。
延伸解读
调试效率提升:断点组与调用堆栈搜索
Visual Studio 引入断点组功能,允许开发者创建、组织和切换断点组,减少在复杂场景中重复滚动和切换单个断点的需要。同时,调用堆栈搜索功能让开发者能在调用堆栈窗口左上角输入搜索词,快速定位相关帧并高亮显示。这些改进直接针对调试过程中的效率痛点,尤其适合大型项目或复杂调试会话。
可视化工具升级:非模态与字符串操作
文本可视化工具新增 URL 编码/解码、Base64 编码/解码和 JWT 解码等字符串操作工具。此外,托管表格可视化工具(DataSet 和 IEnumerable)和字符串可视化工具(托管和本机)现在是非模态的,允许同时与编辑器交互,并可同时打开多个可视化工具,选择浮动或停靠。这些改进提升了调试时的灵活性和用户体验。
跨平台调试与外部源调试增强
Visual Studio 增强了跨平台调试支持,包括在集成终端中调试 Linux 控制台应用,以及从 17.5 版本起支持在远程 Linux 目标上部署和调试。外部源调试现在能自动反编译外部 .NET 代码,并支持自动去优化发布二进制文件和外部代码,仅在停止的代码处进行去优化,从而减少局部变量、监视和即时窗口中的错误,并提升代码导航体验。
性能优化:启动速度与构建加速
调试性能得到显著提升:初始 F5(冷启动)的调试器启动和进程启动时间提高了 5-10%。对于 Unreal Editor 项目,通过优化断点设置和 PDB 加载过程,F5 性能在测试中提升了 20%。从 17.5 版本起,符号的磁盘缺失缓存避免了不必要的符号服务器 ping,显著提升了 F5 性能。此外,构建加速功能可将 SDK 风格 .NET 项目的增量构建时间减少最多 80%。
Q&A
Visual Studio 在2023年对调试工具做了哪些主要改进?
Visual Studio 在2023年对调试工具进行了多项重大改进,包括:断点组、升级的文本可视化工具、非模态可视化工具、调用堆栈搜索、并行堆栈窗口改进、持久重新附加到调试器进程、项目级别的步进过滤器、CMake调试器、更智能快速的外部源调试、跨平台调试支持以及性能升级。这些更新旨在提升调试体验和开发者生产力。
断点组功能有什么作用?如何使用?
断点组功能允许你创建、组织和切换断点组,以启用或禁用一组断点。这减少了在复杂场景中重复滚动和切换单个断点的需要,从而提升调试效率。你可以在Visual Studio中轻松管理断点组。
升级后的文本可视化工具增加了哪些字符串操作工具?
升级后的文本可视化工具增加了URL编码/解码、Base64编码/解码和JWT解码等字符串操作工具。
Visual Studio 在跨平台调试方面有哪些新支持?
Visual Studio 增加了对跨平台调试的支持,包括:在集成终端中调试Linux控制台应用;从17.5版本起,支持在远程Linux目标上部署和调试;表格可视化工具(如IEnumerable和DataSet)现在支持通过SSH、Docker或WSL在Unix上使用;在Linux容器或WSL中调试时,可以使用编辑并继续(F5和Ctrl-F5);还可以通过“附加到进程”调试Linux应用服务中的.NET进程。
Visual Studio 在调试性能方面有哪些提升?
Visual Studio 在调试性能方面有多项提升:F5体验(尤其是冷启动)的调试器启动和进程启动时间提高了5-10%;针对Unreal Editor项目,通过优化断点设置和PDB加载过程,F5性能提升了20%;从17.5版本起引入了符号的磁盘缺失缓存,避免了不必要的符号服务器ping,显著提升了F5性能;还引入了“构建加速”功能,可将SDK风格.NET项目的增量构建时间减少最多80%;此外,通过修改MSVC编译器,改进了std::move等构造的调试性能和体验。
外部源调试有哪些改进?
外部源调试变得更智能和快速:VS调试器现在可以自动反编译外部.NET代码,允许轻松导航、调试和设置断点,大型模块的反编译速度提高了10倍;此外,外部源调试现在支持在设置断点和单步执行时自动对发布二进制文件和外部代码进行去优化,只有停止的代码会被去优化,从而减少局部变量、监视和即时窗口中的错误,并提升代码导航体验。