我事先表示歉意,这将是一个非常基本和一般初学者的问题:
为什么我的调试器在没有设置断点的行上“中断”?
更多细节:
我正在C++ 12.4中开发一个大的buggy式的XCode项目。
我在函数A上设置了一个断点。调试器拒绝中断函数A,而是在函数B上持续中断。函数A、和B存在于同一个cpp文件中。我认为函数B应该是在函数A之后调用的,但它们绝对不相互调用,也不是同时调用的。
我确实经历过调试器停止了各种错误,但是使用了红色高亮,而不是绿色的--据我所知,绿色亮点只发生在我自己设置的断点上。
这是预期的行为吗?我漏掉了什么明显的东西吗?
(第一篇帖子,如果我做错了什么,请告诉我!)
编辑:我在下面回答了我自己的问题!
发布于 2022-01-27 17:16:44
这些都是很好的回应,我从他们身上学到了很多--但事实证明,答案非常愚蠢。
无论出于什么原因,当我编译时,XCode没有删除以前编译的二进制文件。至于我的断点问题,我仍然不能百分之百确定发生了什么,但现在已经解决了。
下面是我注意到的:函数A上次编译时不存在。我在函数A中创建了一个字符串。这个字符串分配返回了一个错误的访问错误--所以我假设它是在我正在调试的程序之外分配的!
谢谢响应者!
发布于 2022-01-26 23:02:32
调试器在没有设置断点的地方暂停的最常见原因是抛出异常。有些异常会导致程序崩溃,这就是调试器中红色高亮显示的位置。有些例外情况不会使程序崩溃。在这些情况下,调试器以绿色高亮显示异常断点。
如果调试器以绿色高亮显示暂停您的程序,请单击“继续执行”按钮(这是调试按钮组中位于源代码编辑器下方的左边的第二个按钮),或者选择“调试”>“在Xcode中继续运行程序”。
https://stackoverflow.com/questions/70871155
复制相似问题