我遇到了一个非常奇怪的错误,也许有人可以帮我理解。我有一个代码与向量超出范围错误崩溃相当一致。关于这个错误的另一个奇怪的事情是,当我在整个代码中抛出大量的cout语句以试图确定错误的位置时,它会停止崩溃。
无论如何,作为进一步的测试,我在部分代码周围放置了try / catch块,我的实现类似于:
try {
// my code that is presumably causing problems
}
catch (out_of_range& oor) {
cerr << "Out of Range error: " << oor.what() << endl;
}
当我添加此代码时,错误似乎消失了。没有更多的崩溃,我从来没有在捕获中看到cerr消息。
这有什么办法可以理解吗?
答案 0 :(得分:1)
在调试器中逐步执行旧代码并隔离错误。在调试器中逐步执行新代码并隔离非错误。我将此作为“回答”而不是评论发布,因为它会在更短的时间内为您提供您所寻找的答案,而不是我们的答案或您阅读我们的答案。
调试器用十个字:用-g编译,google“gdb cheatsheet”,这很简单。