У меня проблема при запуске тестового случая в режиме отладки: я получаю всплывающее окно с сообщением «Необработанное исключение в 0x7c812fd3 в Test.exe: 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 байт».
Я немного погуглил, и проблема может быть связана с освобождением памяти несколько раз.
Несмотря на это смутное и запутанное описание, может кто-нибудь намекнуть, как найти проблему? а может как это исправить?
Что немного удивляет меня, так это то, что я не испытываю этого при запуске теста в режиме выпуска …
С уважением,
Свен
Вы пытались запустить эти тестовые сценарии под визуальным отладчиком студии?
Отладчик должен перехватить это исключение, и вы можете проверить стек вызовов и определить местонахождение проблемы.
Других решений пока нет …