我的程序调试非常好,没有错误,当我运行程序时,它执行的初始部分
作业,几秒后它终止到’break continue’选项,并在调用堆栈中看一看,结果证明它是来自ntdll.dll和msvcr100d.dll的错误
它似乎与Windows相关的SDK问题,它似乎也是一个糟糕的指针.
我无论如何都无法控制这一点.
我安装了windows SDK到7.0但似乎没有任何改变,
使用:windows 7 64位,Boost 1.48,Visual Studio编译器(完整版),openCV2.3,c.
我尝试了很多选择,
例如.转到任务管理器,右键单击devenv.exe并在“set affinity”中只选择一个
重新安装windows SDK,
重新安装我自己的项目几次.
什么都没有帮助我,有人可以建议我一个很好的解决方案.
为了更清楚,这是我的调用堆栈
ntdll.dll!77e615de() [Frames below may be incorrect and/or missing,no symbols loaded for ntdll.dll] ntdll.dll!77e615de() ntdll.dll!77e5014e() msvcr100d.dll!_getptd_noexit() line 500 Cntdll.dll!77eb73bc() ntdll.dll!77ea3c48() ntdll.dll!77e5016e() msvcr100d.dll!_getptd_noexit() line 500 Cntdll.dll!77eb74df() ntdll.dll!77eb73bc() ntdll.dll!77ea3c48() ntdll.dll!77e5016e() msvcr100d.dll!_getptd_noexit() line 500 Cntdll.dll!77eb74df() ntdll.dll!77eb73bc() ntdll.dll!77ea3c48() ntdll.dll!77e5016e() msvcr100d.dll!_getptd_noexit() line 500 Cntdll.dll!77eb74df() ntdll.dll!77eb73bc() ntdll.dll!77ea3c48() kernel32.dll!770012ea() kernel32.dll!77001314() msvcr100d.dll!_getptd_noexit() line 500 Cntdll.dll!77eb74df() ntdll.dll!77eb73bc() ntdll.dll!77ea3c48() ntdll.dll!77e5016e() msvcr100d.dll!_getptd_noexit() line 500 Cntdll.dll!77e9b459() ntdll.dll!77e9b42b() bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndivIDualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> >::clear() line 1415 C++bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,0> >::erase(std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<CBoWMatch<int>,0> > > _First,std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<CBoWMatch<int>,0> > > _Last) line 1383 C++bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,0> >::_TIDy() line 1866 + 0x5d bytes C++bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,0> >::~_Tree<std::_Tset_traits<CBoWMatch<int>,0> >() line 792 C++bowExample.exe!std::set<CBoWMatch<int>,128> >::~set<CBoWMatch<int>,128> >() + 0x2b bytes C++bowExample.exe!set2<CBoWMatch<int>,128> >::~set2<CBoWMatch<int>,128> >() + 0x63 bytes C++bowExample.exe!set2<CBoWMatch<int>,128> >::`scalar deleting destructor'() + 0x2b bytes C++bowExample.exe!boost::checked_delete<set2<CBoWMatch<int>,128> > >(set2<CBoWMatch<int>,128> > * x) line 34 + 0x2b bytes C++bowExample.exe!boost::scoped_ptr<set2<CBoWMatch<int>,128> > >::~scoped_ptr<set2<CBoWMatch<int>,128> > >() line 80 + 0xb bytes C++bowExample.exe!bowTest(CBoWIMUParams & BOWIMUParaMS) line 192 + 0xf bytes C++bowExample.exe!main(int argc,char * * argv) line 225 + 0xc bytes C++bowExample.exe!__tmainCRTStartup() line 555 + 0x19 bytes CbowExample.exe!mainCRTStartup() line 371 Ckernel32.dll!7700339a() ntdll.dll!77e79ef2() ntdll.dll!77e79ec5()
这是加载符号后的调用堆栈
ntdll.dll!_ZwRaiseException@12() + 0x12 bytes ntdll.dll!_ZwRaiseException@12() + 0x12 bytes msvcr100d.dll!__getptd_noexit() + 0xae bytes bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,128> > >() line 80 + 0xb bytes C++bowExample.exe!bowTest(CBoWIMUParams & BOWIMUParaMS) line 193 + 0xf bytes C++bowExample.exe!main(int argc,char * * argv) line 216 + 0xc bytes C++bowExample.exe!__tmainCRTStartup() line 555 + 0x19 bytes CbowExample.exe!mainCRTStartup() line 371 Ckernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes解决方法 右键单击包含ntdll.dll的堆栈行(在堆栈跟踪中)并从Microsoft服务器加载调试符号(从…加载符号),然后堆栈跟踪可能会稍微改变一下.使用未定义的符号对每个dll重复该 *** 作.
在下载调试符号之前,您可能正在查看错误的堆栈跟踪.
总结以上是内存溢出为你收集整理的c – ntdll.dll [下面的框架可能不正确/缺失,没有为ntdll.dll加载符号]全部内容,希望文章能够帮你解决c – ntdll.dll [下面的框架可能不正确/缺失,没有为ntdll.dll加载符号]所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)