mtex.cpp 断言失败崩溃:行90,行108

来源:清泛原创     2016-07-20 15:10:53    人气:     我有话说( 0 人参与)

清泛网(www.tsingfun.com):> xxx.exe!CSingleLock::CSingleLock(CSyncObject* pObject, BOOL bInitialLock)行 90 C++ASSERT(pObject->IsKindOf(RUNTIME_CLASS(C...

> xxx.exe!CSingleLock::CSingleLock(CSyncObject* pObject, BOOL bInitialLock) 行 90 C++
ASSERT(pObject->IsKindOf(RUNTIME_CLASS(CSyncObject)));

> xxx.exe!CSingleLock::Lock(unsigned long dwTimeOut) 行 108 C++
m_bAcquired = m_pObject->Lock(dwTimeOut);

 

断言失败崩溃在mtex.cpp源码的上述行中:同步对象不是CSyncObject类型的对象或同步对象Lock失败。出现类似这样的问题,表面看似乎是同步对象的问题,可是排查源码发现CSingleLock及同步对象均正常使用。

猜测是由于某种原因,破坏了同步对象的数据,导致使用时出现奇怪的错误。导致这种情况的原因可能有:缓冲区溢出,内存被非法修改,dll动态库与编译lib不匹配(如使用低版本的lib编译出的exe调高版本的dll,即可能发生函数偏移量错位等情况)等。

可以往这个方向去查,本文仅提供一个思路。有其他的异常情况或好的解决方案欢迎回复评论。

标签: mtex  CSingleLock  断言失败  崩溃 

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)