場景
由於編譯的時候,代碼生成的運行庫選擇MDd,但是看到在堆中釋放資源的時候,開始出錯,並且是在dll中釋放資源出錯,初步懷疑是在不同的模塊中申請和釋放資源導致的問題,問題是在所有的dll中生成都是使用MDd,原則應該沒有什麼問題。預計將cvBlob的代碼拷貝到測試例子中,而不是作爲靜態庫加載看看是否會避免崩潰的問題
ntdll.dll!00000000775c9e51()
[下面的框架可能不正確和/或缺失,沒有爲 ntdll.dll 加載符號]
ntdll.dll!00000000775a6965()
ntdll.dll!000000007753ec51()
KernelBase.dll!000007fefd55304a()
> cvblobDLL.dll!_CrtIsValidHeapPointer(const void * pUserData=0x0000000000417530) 行 2036 C++
cvblobDLL.dll!_free_dbg_nolock(void * pUserData=0x0000000000417530, int nBlockUse=1) 行 1322 + 0xa 字節 C++
cvblobDLL.dll!_free_dbg(void * pUserData=0x0000000000417530, int nBlockUse=1) 行 1265 + 0xe 字節 C++
cvblobDLL.dll!operator delete(void * pUserData=0x0000000000417530) 行 54 + 0x12 字節 C++
cvblobDLL.dll!std::allocator<std::_Tree_nod<std::_Tmap_traits<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> >,0> >::_Node>::deallocate(std::_Tree_nod<std::_Tmap_traits<unsigned int,cvb::CvTrack *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack *> >,0> >::_Node * _Ptr=0x0000000000417530, unsigned __int64 __formal=1) 行 183 C++
cvblobDLL.dll!std::_Tree_val<std::_Tmap_traits<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> >,0> >::~_Tree_val<std::_Tmap_traits<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> >,0> >() 行 556 C++
cvblobDLL.dll!std::_Tree<std::_Tmap_traits<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> >,0> >::~_Tree<std::_Tmap_traits<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> >,0> >() 行 792 + 0xa 字節 C++
cvblobDLL.dll!std::map<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> > >::~map<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> > >() + 0x28 字節 C++
cvblobDLL.dll!cvRenderTracks(const std::map<unsigned int,cvb::CvTrack *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack *> > > * tracks=0x000000000016f018 [0](), _IplImage * imgSource=0x000000000016ec70, _IplImage * imgDest=0x000000000016ed00, unsigned short mode=15, CvFont * font=0x0000000000541cf0) 行 417 + 0xd 字節 C++
main.exe!processVideo(char * videoFilename=0x000000013fda0fa0) 行 74 C++
main.exe!main() 行 86 C++
main.exe!__tmainCRTStartup() 行 555 + 0x19 字節 C
main.exe!mainCRTStartup() 行 371 C
kernel32.dll!00000000774159cd()
ntdll.dll!000000007754a561()