【问题标题】:Does Visual Studio have "break where you are" functionality?Visual Studio 是否具有“打破你所在的位置”功能?
【发布时间】:2014-08-28 11:08:34
【问题描述】:

我们最近开始在引擎中遇到无限循环,我不知道如何有效地解决它们。该应用程序只是永久冻结,我无法停止它的执行以了解发生了什么。在主要位置放置正常断点(更新循环)什么都不做。我几乎可以肯定,问题出在某个连续运行的循环中,但由于代码的大小,我什至无法开始猜测在哪里寻找它。

所以,我的问题是,您如何在代码中的某个任意位置(即应用当时恰好所在的位置)中断应用在 Visual Studio 中的执行?类似于“留在原地”的东西。理论上有可能吗?

【问题讨论】:

  • 你试过暂停按钮吗?左侧第二个按钮,kipirvine.com/asm/debug/vstudio2010/S5.gif 中的第二行
  • 哦,好吧,现在我不好意思问这个问题:)。但一方面,我真诚地阅读了关于断点的 MSDN 文章,并在询问之前搜索了很多 :)。如果您想将此作为 aswer 发布,我会接受。

标签: debugging visual-studio-2012 breakpoints


【解决方案1】:

当然,使用 Debug + Break All。

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

所以你要做的第一件事是使用 Debug + Windows + Threads 并确保选择了正确的线程。双击要调试的那个。接下来您要做的是查看 Debug + WINdows + Call Stack 窗口。它至少应该显示你的一些方法,给你一个提示它是如何最终进入永无止境的。

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

【讨论】:

    猜你喜欢
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多