Debugging VisualStudio是否有;“在你所在的地方休息”;功能?

Debugging VisualStudio是否有;“在你所在的地方休息”;功能?,debugging,visual-studio-2012,breakpoints,Debugging,Visual Studio 2012,Breakpoints,我们最近开始在引擎中遇到无休止的循环,我不知道如何有效地对抗它们。该应用程序只是永久冻结,我无法停止它的执行,以了解发生了什么。将普通断点放置在主要位置(更新循环)没有任何作用。我几乎可以肯定这个问题是在一个持续运行的循环中,但由于代码的大小,我甚至不能开始猜测在哪里寻找它 所以,我的问题是,如何在代码中的任意位置中断应用程序在VisualStudio中的执行,而该应用程序恰好位于该位置?类似于“呆在原地”的东西。理论上可能吗?当然可以,使用Debug+Break All 当然,这并不一定会在与

我们最近开始在引擎中遇到无休止的循环,我不知道如何有效地对抗它们。该应用程序只是永久冻结,我无法停止它的执行,以了解发生了什么。将普通断点放置在主要位置(更新循环)没有任何作用。我几乎可以肯定这个问题是在一个持续运行的循环中,但由于代码的大小,我甚至不能开始猜测在哪里寻找它


所以,我的问题是,如何在代码中的任意位置中断应用程序在VisualStudio中的执行,而该应用程序恰好位于该位置?类似于“呆在原地”的东西。理论上可能吗?

当然可以,使用Debug+Break All

当然,这并不一定会在与程序中的一条语句匹配的好地址中断程序。如果设置断点没有调用中断,则很有可能。您可能会看到调试器发出的通知,说明它无法显示源代码。或者,它可能没有选择正确的线程

因此,您要做的第一件事是使用Debug+Windows+线程,并确保选择了正确的线程。双击要调试的。接下来要做的是查看Debug+WIndows+callstack窗口。它至少应该显示您的一些方法,给您一个提示,它是如何在never land中结束的


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

您是否尝试过暂停按钮?左边第二个按钮,第二排哦,现在我不好意思问这个问题:)。但有一件事,我确实认真阅读了MSDN关于断点的文章,并在询问之前在谷歌上搜索了很多:)。如果你想将此作为答复发布,我将接受。