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

StackOverflow https://stackoverflow.com/questions/2787999

  •  04-10-2019
  •  | 
  •  

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

我知道这个问题之前已经在堆栈溢出上提出过(断点无法设置并已禁用),但是那里没有一个答案完全解释了我看到的问题。我最接近的是关于链接器的东西,但我不明白 - 因此,如果有人可以详细解释,那将是很棒的。

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

在测试脚本开头附近,有一个mytest_initialize()命令。我想这崩溃了,并加载了生产dll。该行执行后,我可以将断点放在生产代码中并运行直到达到它。但是,必须运行到这条线,设置断点并继续每次我要进行测试时,这是非常烦人的。

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

提前致谢。很抱歉,如果我应该将这个问题附加到现有问题上,这是我的第一篇文章,因此不确定该如何工作。

更新1]我认为Chris O已经确定了这个问题。如果我能够使用项目设置来制作此工作,我将添加进一步的更新。

没有正确的解决方案

其他提示

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

您也可以在知道MyTest_Initialize()后尝试附加调试器,这可能使您的断点启用。

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

这里 是一个家伙帖子,他是如何修复的。

希望能帮助到你。

在我的情况下,我通过设置包含断点作为活动项目的DLL项目并更改此项目的调试设置(右键单击项目>>设置>>调试选项卡)来指向实际运行和访问DLL的项目。 “用于调试会话的可执行文件:”和“ Working Directory:”应设置为您实际要运行的可执行文件及其相应的目录。

希望这有任何帮助。

右键单击项目>>设置>>链接选项卡检查生成的调试信息,请逐步检查链接

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top