
微软 Visual Studio 2026 全面推出 C++ 动态调试功能
来源标题:Visual Studio C++ Dynamic Debugging is now generally available
微软宣布 C++ 动态调试功能已在 Visual Studio 2026 所有渠道和 MSVC Build Tools 14.52 中正式可用。该功能在设置断点或单步进入函数时自动对相关函数取消优化,开发者无需切换 Debug 构建或添加 #pragma optimize 重建,即可检查局部变量、逐行调试和进入内联函数,同时保持应用其余部分的优化性能。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
我们很高兴地宣布,C++ 动态调试现已在所有 Visual Studio 2026 渠道以及 Microsoft C++ (MSVC) Build Tools 14.52 版中正式发布。
在游戏或大型应用的传统工作流中,切换到调试版本可以让你访问调试符号,但代价是性能下降。相反,当你调试优化版本或发布版本时,你经常会遇到被“优化掉”的变量,并且发现很难可靠地单步执行你想检查的代码。
借助 C++ 动态调试,你可以兼得两者之长。你可以检查局部变量、逐行单步执行源代码,并步入内联函数。应用程序的其余部分保持优化状态,因此你可以维持所需的运行时性能,以便到达并调查问题。
启用该功能并重新生成应用程序后,当设置断点或步入函数时,动态调试会为你对该函数进行去优化处理。你无需仅仅为了检查那段代码而停下来、添加 #pragma optimize、重新生成并再次复现问题。对于大型游戏和性能敏感的应用程序来说,这意味着准备调试的时间更少,调查问题的时间更多。
从游戏开发到虚拟现实,微软团队已经在使用 C++ 动态调试来让优化后的代码更易于调试。以下是他们的评价:
“动态调试是 C++ 开发的变革性工具。它让我能够在我实际需要的大型游戏代码库的优化版本中工作,同时在关键时刻仍能去优化并检查代码和运行时状态。它消除了长期以来在真实运行时性能与高效调试体验之间的取舍。” Michael Buschbeck – 首席软件工程师,Microsoft Havok
“性能在开发虚拟现实应用程序时至关重要,所以我的团队在开启优化的情况下进行构建。动态调试让我们能够像调试未优化代码一样调试优化后的代码。它无缝到你会忘记它帮了多大的忙。” Bryce Hutchings – 首席软件工程师,Microsoft Cloud Streaming, Mixed Reality, and Graphics
对于 x64 MSBuild C++ 项目,选择你的 Release 配置,然后打开项目属性。设置 Configuration Properties > Advanced > Use C++ Dynamic Debugging > Yes。然后,重新生成项目即可开始。此设置会关闭全程序优化。对于 CMake 和其他生成系统,你可以将新的 /dynamicdeopt 开关传递给 cl.exe、lib.exe 和 link.exe。
C++ 动态调试也适用于 Unreal Engine 5.6 及更高版本,并在 Unreal Build Tool 和 Unreal Build Accelerator 中提供支持。要尝试它,请在目标项目的 .Target.cs 文件中启用 WindowsPlatform.bDynamicDebugging = true; 并重新生成。
此外,动态调试与 FastBuild 和 IncrediBuild 等分布式生成系统兼容。
有关其他生成系统、要求和限制,请参阅文档。
我们很想了解 C++ 动态调试在你的项目中的效果。欢迎在下方评论、通过 Visual Studio 中的 Help > Send Feedback、在 X (@VisualC) 上或发送电子邮件至 visualcpp@microsoft.com 分享你的想法。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。