向量中调试断言失败错误
问题描述:
我正在编写一些使用第三方开源库的函数。在发布模式下,它随机崩溃,但没有其他信息。所以,我试图调试这个问题。向量中调试断言失败错误
,当我在调试模式下运行,我得到的:
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;
}
在
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vector
我知道有信息关于这个在这里,搜索告诉我,这很可能是一个将太多元素填充到矢量中的问题。
我的问题是:
由于断点vector
发生,而不是在我的代码,或第三方的代码,我怎么能找到它的具体功能是造成这个错误?
(第三方库散落着两vector<bool>
和iterator
。
谢谢。
答
你的调试器有一个名为“调用堆栈”功能。它显示的所有功能顺序堆叠他们互相呼叫
当发生崩溃时,您位于该调用堆栈的顶部,现在只是向下查看调用堆栈,直到找到自己的代码为止,双击该函数并将IDE指向您到代码位置。
在Visual Studio中:菜单调试> Windows>调用栈(Ctrl + Alt + C)。
如何调试101:调用堆栈 – LogicStuff
啊我明白了。调用堆栈中的当前行只显示:> \t msvcp140d.dll!00007ffd173f0806()\t未知。当我点击它时,给出'pdb没有加载。 – anti
看起来像第三方库是越野车,不能使用。 –