在调试模式下运行测试用例时遇到问题:我收到一个弹出框,显示消息“Test.exe 中 0x7c812fd3 处的未处理异常:0xE0000003:0xe0000003。”。代码在 free.c 中中断:
void __cdecl _free_base (void * pBlock)
{
int retval = 0;
if (pBlock == NULL)
return;
RTCCALLBACK(_RTC_Free_hook, (pBlock, 0));
retval = HeapFree(_crtheap, 0, pBlock);
if (retval == 0)
{
errno = _get_errno_from_oserr(GetLastError());
}
}
在“retval = ...”行,_crtheap = 0x00df0000 和 pBlock = 0x967c93d3。调用堆栈在“kernel32.dll!7c812fd3()”和调用堆栈中的另一个条目中断:">msvcr100d.dll!_free_base(void * pBlock=0x967c93d3) 第 50 行 + 0x13 字节“。
我用谷歌搜索了很多,问题可能来自释放内存严重时间。尽管有这种模糊和混乱的描述,任何人都可以暗示如何定位问题吗?也许如何解决它?
让我感到有点奇怪的是,在发布模式下运行测试时我没有遇到这种情况......
亲切的问候,斯文德