Поделиться через


Как определить, повреждают ли указатели адрес памяти?

Этот раздел применим к:

Выпуск

Visual Basic

C#

F#

C++

Web Developer

Express

Тема не применяется Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Pro, Premium и Ultimate

Тема не применяется Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Описание проблемы

Возможно, один из указателей повреждает память по адресу 0x00408000. Как определить, что происходит в этой точке?

Решение

Проверка целостности кучи

  • В большинстве случаев повреждение памяти происходит из-за повреждения кучи. Используйте программу глобальных флагов (gflags.exe) или pageheap.exe. Дополнительные сведения см. в разделе https://support.microsoft.com/default.aspx?scid=kb;ru-ru;286470.

Поиск места изменения адреса памяти

  1. Задайте точку останова данных по адресу 0x00408000. Дополнительные сведения см. в разделе Практическое руководство. Установка точки останова для данных (только машинный код).

  2. При попадании в точку останова используйте окно Память для просмотра содержимого памяти начиная с адреса 0x00408000. Дополнительные сведения см. в разделе Окно памяти.

См. также

Основные понятия

Вопросы и ответы по отладке машинного кода

Другие ресурсы

Отладка машинного кода