[改动] 我有一个非常奇怪的错误。我的调试器在调用使用std :: string的函数时曾经崩溃。 我认为这是一个错误我的代码,起初我没有意识到,它必须用std :: strings做一些事情。无论如何,我现在知道它必须与KDevelop做一些事情,因为如果我编译这个小测试文件:
#include <iostream>
#include <vector>
#include <string>
int main(int argc, char **argv) {
std::cout << "Hello, world!" << std::endl;
std::string test = "test test";
std::cout << test;
return 0;
}
它打印“测试测试”,但是当我尝试调试它时,它也会在main()调用时崩溃。 无论如何,我可以使用nemivar调试我的项目,nemivar也使用GDB作为后端,没有错误。
所以这对我来说不再是问题,可以删除。
答案 0 :(得分:1)
在search_str_in_vector()
函数中,取消引用不允许的end()
迭代器并导致未定义的行为。你的for循环也是一个大于向量的元素(从vector.size()-1
开始)。