提问人:Josh 提问时间:8/12/2008 最后编辑:CœurJosh 更新时间:4/16/2017 访问量:1428
MSVC6:断点停止程序
MSVC6: Breakpoint stops program
问:
使用 Microsoft Visual Studio 98、Microsoft Visual C++ 6.0 SP6
在调试器下运行时,只有一个问题。如果我暂停程序并恢复,一切都很好。
问题是什么?当我遇到断点时,我的程序将停止。但不是以一种好的方式;执行停止,我从调试模式进入编辑模式。在命中断点之前,一切都很好。我知道它正在命中断点 - 我看到黄色小箭头闪烁,指向正确的代码行、检查窗口中的局部变量和该窗口中的调用堆栈。然后我盯着编辑。
这发生在所有项目中。
我已卸载并重新安装 MSVC6。它没有帮助。
我即将在一台新 PC 上重新开始;在我走那么远之前,有人知道我对这个做了什么吗?
注意:MSVC6 不是我的选择,但有原因。这是我使用的工具。而且,我们以 NT4 为目标,因此鉴于 2008 年不能以 NT4 为目标,而 2005 年在 MFC 和 NT4 方面存在问题,因此 MSVC6 是。
答:
我已经多年没有使用过 MSVC6 了,但我记得调试器基本上是一堆垃圾。像这样的事情经常会无缘无故地发生,因为它那天不喜欢你的代码。
除了调试器是一堆垃圾之外,其余部分也是。
它的 STL 实现不是线程安全的,它不支持太多的 C++ 标准,并且 IDE 非常缺乏细节。
我很确定您也根本无法使用过去 5 年的任何版本的 Platform SDK,因为它太旧了,无法理解它们。这不是一件好事。
当有可以免费下载的Visual C++ Express 2008时,你会很生气地继续使用它。
评论
停止在 VC6 上跳动。它很旧。STL 于 1996 年根据 1994 年编写的 HP 代码进行了更新。C++ 于 1998 年获得批准。
当你被破坏时,代码在做什么?你能把情况简化成一个简单的测试吗?当我尝试这样做时,我通常会找到原因。如果你能做到这一点,所以它仍然会发生,那么我会为你看一看。我也很幸运地将 VC6 用于我的日常工作。
在某些情况下,Visual C++ Express 2008 不能使用。
它是特定于你正在处理的应用,还是任何应用中的所有断点都会破坏调试器?
如果在正常启动应用程序后手动附加调试器,有什么不同吗?
我要检查的第一件事是这个项目是否在其他机器上做同样的事情。如果没有,可能是你的盒子正在向南走。如果不是,那就是 VC6 项目本身。
通常,当我的程序对硬件(尤其是视频)执行某些操作时,我会对调试器感到愚蠢。
我建议关闭程序的某些部分,直到您弄清楚是哪个部分导致了这种情况。如果您的程序很小并且没有执行太多操作,则可能是项目已损坏,需要重新生成。从头开始创建一个新项目,然后手动放回您的文件和设置。
设备是否内存不足,因此在需要额外内存在断点处停止时放弃幻影?
设备是否内存不足,因此在需要额外内存在断点处停止时放弃幻影?
不,还有超过一千个 RAM 要用,甚至还有更多的虚拟内存。
评论