“无法设置一个或多个断点并已被禁用。执行将在程序开始时停止。”

时间:2010-05-07 11:02:11

标签: debugging visual-c++ vc6

我在Visual-C ++中的代码中设置了一个断点,但是当我运行时,我看到了标题中提到的错误。

我知道之前在Stack Overflow(Breakpoints cannot be set and have been disabled)上已经问过这个问题,但没有一个答案完全解释了我所看到的问题。我能看到的最接近的是关于链接器的东西,但我不明白 - 所以如果有人能够更详细地解释这将是伟大的。

就我而言,我有两个Visual C ++项目 - 生产dsw和测试代码dsw。我已经在调试模式下加载并重建了两个dsws。我想在生产代码中使用断点,该断点通过测试脚本运行。我的问题是我在运行测试代码时收到错误消息,因为断点位于生产代码中,测试开始时没有加载。

在测试脚本的开头附近有一个mytest_initialize()命令。我想这会消失并加载生产dll。一旦执行了这一行,我就可以将断点放在我的生产代码中并运行直到我点击它。但是,必须运行到此行,设置断点并在每次我想运行测试时继续运行都非常烦人。

所以我认为问题是Visual C ++并没有意识到这两个项目是相关的。这是链接器问题吗?链接器做了什么以及我应该更改哪些设置才能使其工作?

提前致谢。如果相反我应该将此问题附加到现有问题上,这是我的第一篇文章,所以不太确定这应该如何运作。

[更新1]我认为Chris O已经发现了这个问题。如果我能够弄清楚如何使用项目设置来完成这项工作,我将添加进一步的更新。

4 个答案:

答案 0 :(得分:1)

听起来你正在使用VC6,因为你提到了dsw文件。我认为这与VC6中的一样好,您必须在从LoadLibrary加载模块后手动添加断点。实际上,可能存在项目调试设置,因此您可以指定在调试项目时要加载哪些DLL,这样可以在按F5时启用断点。

您也可以在知道调用mytest_initialize()之后尝试附加调试器,这可能会使您的断点保持启用状态。

答案 1 :(得分:0)

我有时会遇到这个问题,但总是通过一些代码替换操作传递这个问题。

Here是一些帖子,他是如何修复它的。

希望它有所帮助。

答案 2 :(得分:0)

在我的情况下,我通过将包含断点的DLL项目设置为Active Project并更改了此项目的调试设置(右键单击项目>> settings>> Debug选项卡)来指向实际运行的项目并访问DLL。 "可执行调试会话:"和"工作目录:"应该设置为您实际要运行的可执行文件及其相应的目录。

希望这有任何帮助。

答案 3 :(得分:0)

右键单击项目>>设置>>链接标签 检查生成调试信息 逐步检查链接