【问题标题】:Visual Studio 2008 C++ debugger drops out of single-step mode under VistaVisual Studio 2008 C++ 调试器在 Vista 下退出单步模式
【发布时间】:2009-12-01 15:22:12
【问题描述】:

我有一个相当大的 C++ 项目,并且正在尝试使用调试器来单步执行一些代码。不幸的是,它有时会决定退出该模式,只执行代码而不注意我按下 F10 的事实,并且不会在后续断点处中断。我不知道它什么时候会退出,但它似乎始终如一地退出。

具体来说,我正在尝试查看显示的某个元素是如何计算的。我在计算发生的地方放置了断点。调试器会在其中几个处停止(没有达到我需要的程度),然后忽略所有其余部分,完成的图像出现在窗口上。其他时候,我一直在单步执行代码,突然它就开始执行了。

这是在 Visual Studio 2008 SP1 中使用 Visual C++,在 64 位 Vista 上运行。代码在调试模式下编译,没有启用优化。我已经完成了干净且完整的重建,但没有修复此问题。

有人知道是什么原因造成的吗?有什么我可以做的吗?

编辑:在我失去休息的地方没有涉及线程,我刚刚安装了this recommended fix,但问题仍然存在。

【问题讨论】:

    标签: c++ visual-studio windows-vista debugging


    【解决方案1】:

    根据雅虎的回答,KB957912 - Update for Visual Studio 2008 SP1 Debugging and Breakpoints 似乎是最好的选择

    【讨论】:

    • 这个似乎解决了我们的 VS2008 调试器丢失问题。
    【解决方案2】:

    我想我以前遇到过这种情况。

    您可以下载修复此问题和其他问题的修补程序(可在此处获得): http://code.msdn.microsoft.com/Project/ProjectDirectory.aspx?TagName=Visual%20Studio%202008,Hotfix

    我安装了一堆,从那以后就没有问题了。安装后,您可以在“关于”框中看到它们。

    我不会花时间挑选最重要的,因为我在工作.. 但您可能至少要安装 3 或 4 个。我认为某些修补程序可能已在某个时间被分组到某种 SP1 中(也可在链接中找到)。

    编辑(回应原始帖子中的编辑):我确信修补程序解决了类似于您所描述的问题,因为安装一堆修补程序解决了我的一群同事提出的投诉(主要的抱怨是“它有时会忽略我的断点并一直跑过它们!”)。我建议您继续安装任何适用的东西。

    【讨论】:

      【解决方案3】:

      您确定要调试刚刚构建的可执行文件吗?也许调试模式下的设置是错误的,并且您正在调试以前编译的...确保您可以从资源管理器运行调试可执行文件并稍后附加 Visual Studio。

      如果这不是问题,您可以尝试一些 ASM:

      __asm __emit 0xF1;
      

      这将在执行后中断。 (更多关于http://ccollomb.free.fr/blog/?p=30

      【讨论】:

      • 我实际上必须使用以下语法:__asm { _emit 0xF1 }; (大括号,_emit 中只有一个下划线)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多