向量

时间:2017-02-19 14:36:28

标签: c++ debugging vector

我正在编写一些使用第三方开源库的函数。在发布模式下,它会随The programme has stopped working随机崩溃,但没有其他信息。所以,我正在尝试调试这个问题。

当我在调试模式下运行时,我得到:

vector <bool> iterator not dereferencable错误,它突破

const _Vbase *_Getptr() const
        {   // get pointer to base word
 #if _ITERATOR_DEBUG_LEVEL == 2
        if (this->_Getcont() == 0
            || this->_Myptr == 0
            || 0 <= this->_Valid(0))
            {   // report error
            _DEBUG_ERROR("vector<bool> iterator not dereferencable");
            _SCL_SECURE_OUT_OF_RANGE;
            }

in

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vector

我知道这里有关于此的信息,搜索告诉我,很可能是在向量中填充太多元素的问题。

我的问题是:

由于断点发生在vector中,而不是我的代码或第三方代码中,如何找到导致此错误的特定函数?

(第三方图书馆充斥着vector<bool>iterator

谢谢。

1 个答案:

答案 0 :(得分:1)

您的调试器有一个名为&#34; call stack&#34;的功能。它按照彼此调用的顺序显示所有函数的堆栈。

发生崩溃时,您处于该调用堆栈的顶部。现在,只需向下看调用堆栈,直到找到自己的代码。双击该功能,IDE将您指向代码位置。

在Visual Studio中:菜单调试&gt; Windows&gt;调用堆栈(Ctrl + Alt + C)。