debugging - "One or more breakpoints cannot be set and have been disabled. Execution will stop at the beginning of the program."

标签 debugging visual-c++ visual-c++-6

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

我知道这个问题之前已经在 Stack Overflow ( Breakpoints cannot be set and have been disabled ) 上被问过,但那里的答案都没有完全解释我所看到的问题。我能看到的最接近的是有关链接器的内容,但我不明白 - 所以如果有人可以更详细地解释,那就太好了。

就我而言,我有 2 个 Visual C++ 项目 - 生产 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/

相关文章:

c++ - 如何使用可变模板参数保存可变数量的参数?

c++ - ATL COM+ 使用接口(interface)作为参数

preprocessor - VC6 设置附加包含使用环境变量的路径?

debugging - 在我的嵌入式平台上运行 GDB 的不同方法

node.js - Node v5 破坏了 Webstorm 的调试器

c++ - 使用 OpenCV 和 C 裁剪图像

c++ - 使用静态变量和模板

android - 在库中设置断点 Material 成分?

c++ - 使用队列的 Phantom Bug(STL 库),Windows/MingW/G++

c++ - 包括 stdafx.h winsock2 重新定义错误