帮忙分析_DllMainCRTStartup中的错误
程序访问网络的客户端应用程序,应用到大量网络和媒体相关处理的DLL,不基于MFC,目前对底层库进行升级.
出现的问题是:
Release/Debug正常应用较长时间,未出现问题.
在调试状态时,正常无规则操作可能引起Crack,输出显示:
HEAP[XConvert.exe]: Heap missing last entry in committed range near 194ed0
断点位于一个COM组件DLL中的_DllMainCRTStartup中如下位置:
BOOL retcode = TRUE;
/*
* If this is a process detach notification, check that there has
* has been a prior process attach notification.
*/
if ( (dwReason == DLL_PROCESS_DETACH) && (__proc_attached == 0) )
/*
* no prior process attach notification. just return
* without doing anything.
*/
return FALSE;
__try {
if ( dwReason == DLL_PROCESS_ATTACH || dwReason == DLL_THREAD_ATTACH )
{
if ( _pRawDllMain )
retcode = (*_pRawDllMain)(hDllHandle, dwReason, lpreserved);
if ( retcode )
retcode = _CRT_INIT(hDllHandle, dwReason, lpreserved);
if ( !retcode )
return FALSE;
}
// 断点位于此处,此时retcode=0
retcode = DllMain(hDllHandle, dwReason, lpreserved);
编译环境经DailyBuild自动配置,因此一般不会存在DLL引用关系错位等问题.
虽然目前不影响使用,但一直心中不安,请大家帮忙分析产生此种现象可能的原因!