Повреждение кучи памяти и GFlags / windbg - PullRequest
0 голосов
/ 03 января 2012

У меня есть приложение, которое создает исключение кучи памяти (повреждение).

В Интернете я нашел такое предложение:

"GFlags.exe: программа отладки кучи. Используя GFlags, вы можете установить стандартные, / full или / dll параметры кучи, которые заставят работать Система генерирует нарушения доступа и коррупционные ошибки, когда ваш Программа перезаписывает кучу памяти. «

Но конкретно, как я могу с помощью GFlags или Windbg найти строку в моем исходном коде, которая вызывает ошибку?

Есть ли в Интернете хорошая / синтетическая бумага?

1 Ответ

3 голосов
/ 03 января 2012

GFlags может привести к тому, что диспетчер кучи в Windows будет вести себя по-разному, что поможет отладке проблем с кучей.

При использовании с параметром /full ваша программа будет «зависать» из-за нарушения прав доступа при доступевыделенный буфер превышает его длину.

(без GFlags /full, программа может продолжиться, и проблема появится намного позже). Вы можете использовать отладку с помощью VS или WinDbg или собрать аварийный дамп.

Теперь отладчик должен указать на ошибку (указатель инструкций), и, надеюсь, вы найдете в своем источнике утверждение, которое вызвало ошибку.

Имейте в виду, что опция /full заставляет программу использовать гораздо больше памяти и, следовательно, может использоваться только в относительно небольших программах.Если опция /full не вызывает «сбой», попробуйте также с /full /backwards.

...