Как отладить нарушение доступа?
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
![]() |
![]() |
![]() |
Только машинные коды |
![]() |
Pro, Premium и Ultimate |
![]() |
![]() |
![]() |
Только машинные коды |
![]() |
Описание проблемы
Программа порождает нарушение доступа. Как это отладить?
Решение
Используйте окно Стек вызовов, чтобы просмотреть стек вызовов и найти поврежденные данные, передаваемые функции в качестве параметра. Если это не помогло, попытайтесь задать точку останова перед тем местом, где возникло нарушение доступа. Проверьте, корректны ли данные в этой точке. Если это так, попытайтесь пройти это место пошагово. Если можно определить конкретное действие (например, команда меню), приведшее к нарушению доступа, можно попробовать другой способ: установите точку останова между этим действием (в этом примере командой меню) и собственно нарушением доступа. Затем можно посмотреть на состояние программы в момент возникновения нарушения доступа.
Эти способы можно использовать в сочетании или чередовать их, пока место, где возникло нарушение доступа, не будет точно определено. Дополнительные сведения см. в разделе Использование окна "Стек вызовов".
См. также
Основные понятия
Вопросы и ответы по отладке машинного кода