我在 Visual-C++ 的代码中设置了一个断点,但是当我运行时,我看到了标题中提到的错误。
我知道之前在 Stack Overflow ( Breakpoints cannot be set and have been disabled ) 上已经问过这个问题,但是那里的答案都没有完全解释我所看到的问题。我能看到的最接近的是关于链接器的东西,但我不明白 - 所以如果有人能更详细地解释那会很棒。
就我而言,我在 Visual C++ 中有 2 个项目 - 生产 dsw 和测试代码 dsw。我已经在 Debug模式下加载并重建了两个 dsws。我想在生产代码中设置一个断点,该断点通过测试脚本运行。我的问题是我在运行测试代码时收到错误消息,因为断点在生产代码中,在测试开始时没有加载。
在测试脚本的开头附近有一个 mytest_initialize() 命令。我想这会发生并加载生产 dll。一旦执行了这一行,我就可以在我的生产代码中放置断点并运行,直到我命中它。但是每次我想运行测试时都必须运行到这一行,设置断点并继续,这很烦人。
所以我认为问题是 Visual C++ 没有意识到这两个项目是相关的。这是链接器问题吗?链接器的作用是什么,我应该更改哪些设置才能使其正常工作?
提前致谢。抱歉,如果我应该将这个问题附加到现有问题中,这是我的第一篇文章,所以不太确定这应该如何工作。
[更新 1] 我认为 Chris O 已经确定了问题所在。如果我能够弄清楚如何使用项目设置来完成这项工作,我将添加进一步的更新。
最佳答案
听起来您正在使用 VC6,因为您提到了 dsw 文件。我认为这与 VC6 中的一样好,您必须在从 LoadLibrary 加载模块后手动添加断点。实际上,可能有一个项目调试设置,因此您可以在调试项目时指定要加载哪些 DLL,这将使您在按 F5 时启用断点。
您还可以在知道 mytest_initialize() 已被调用后尝试附加调试器,这可能会使您的断点保持启用状态。
关于debugging - "One or more breakpoints cannot be set and have been disabled. Execution will stop at the beginning of the program.",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2787999/