Как отладить “сбой утверждения отладки” в VC ++ 6
-
05-09-2019 - |
Вопрос
Интересно, как отладить следующую ошибку:
Debug Assertion failure
Program: tomtoprog.exe
File: dbgheap.c
Line: 1044
Expression:_CrtIsValidHeapPointer(pUserData)
...
Я совсем новичок в разработке Windows с VC ++ 6 ...есть ли valgrind или что-то в этом роде?Код tomtoprog написан не мной , и он довольно грязный ...так что что - то вроде valgrind значительно облегчило бы мою жизнь ...
Заранее спасибо!
С наилучшими пожеланиями,
Чжэнтонический
Решение
Похоже, у вас либо повреждение кучи, либо вы выполняете двойную очистку одного и того же указателя.Если вы взломаете отладчик, какая последняя строка вашего кода вызывается при выполнении assert?
Лучший способ проверить наличие подобных проблем - использовать верификатор кучи страниц, например PageHeap.exe
Также смотрите этот связанный вопрос о переполнении стека
Другие советы
Нажмите "Повторить попытку", и он проникнет в отладчик.Это даст вам стек вызовов.Оттуда вы можете найти ту часть вашего кода, которая является неисправной.
Подсказка:вероятно, вы удаляете / освобождаете что-то дважды.