0

[修改]我有一个非常奇怪的错误。我的调试器在调用使用 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 调试我的项目,它也使用 GDB 作为后端,没有错误。

所以这对我来说不再是问题,可以删除。

4

1 回答 1

1

在您的search_str_in_vector()函数中,您取消引用一个end()不允许的迭代器并导致未定义的行为。您的 for 循环也是比向量大的一个元素(从vector.size()-1相反开始)。

于 2012-03-21T12:08:30.910 回答