Вопрос

Интересно, как отладить следующую ошибку:

Debug Assertion failure

Program: tomtoprog.exe
File: dbgheap.c
Line: 1044

Expression:_CrtIsValidHeapPointer(pUserData)
...

Я совсем новичок в разработке Windows с VC ++ 6 ...есть ли valgrind или что-то в этом роде?Код tomtoprog написан не мной , и он довольно грязный ...так что что - то вроде valgrind значительно облегчило бы мою жизнь ...

Заранее спасибо!

С наилучшими пожеланиями,

Чжэнтонический

Это было полезно?

Решение

Похоже, у вас либо повреждение кучи, либо вы выполняете двойную очистку одного и того же указателя.Если вы взломаете отладчик, какая последняя строка вашего кода вызывается при выполнении assert?

Лучший способ проверить наличие подобных проблем - использовать верификатор кучи страниц, например PageHeap.exe

Также смотрите этот связанный вопрос о переполнении стека

Повреждение кучи под Win32;как определить местонахождение?

Другие советы

Нажмите "Повторить попытку", и он проникнет в отладчик.Это даст вам стек вызовов.Оттуда вы можете найти ту часть вашего кода, которая является неисправной.

Подсказка:вероятно, вы удаляете / освобождаете что-то дважды.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top