Visual Studio 有“break where you are”功能吗?

问题描述 投票:0回答:1

最近我们的引擎开始遇到无限循环,我不知道如何有效地解决它们。该应用程序会永远冻结。

我无法停止它的执行来了解发生了什么。在主要位置(更新循环)放置正常断点没有任何作用。我几乎可以肯定问题出在某个连续运行的循环中,但由于代码的大小,我什至无法开始猜测在哪里寻找它。

所以,我的问题是:
如何在 Visual Studio 中应用程序当时所在的代码中的任意位置中断应用程序的执行?

类似于“打破你所在的位置”。
理论上可行吗?

visual-studio debugging breakpoints pause
1个回答
5
投票

当然,使用“调试”+“全部中断”。

这当然并不一定会在恰好与程序中的语句之一匹配的好地址处破坏您的程序。如果设置断点没有调用中断,则很有可能。您可能会看到来自调试器的通知,指出它无法显示源代码。或者就此而言,它可能没有选择正确的线程。

因此,您要做的第一件事是使用“调试”+“Windows”+“线程”并确保选择了正确的线程。双击您要调试的那个。接下来您要做的就是查看“调试 + WIndows + 调用堆栈”窗口。它至少应该显示你的一些方法,给你一个提示,它是如何最终进入梦幻之地的。

它在本机代码或操作系统调用上陷入僵局也不是不可能的。要看到这一点,您需要启用非托管调试。项目+属性,调试,勾选“启用本机代码调试”。并确保您已启用符号服务器,以便获得操作系统 DLL 的调试信息。工具+选项、调试、符号。

© www.soinside.com 2019 - 2024. All rights reserved.