Серия
Нарушение доступа C0000005
Нарушение доступа — это тип исключения, вызванного тем, что приложение считывает, записывает или выполняет недопустимый адрес памяти.
Код исключения — 0xC0000005
Первый параметр исключения (0) — это тип нарушения; Чтение (0), запись (1) или выполнение (8)
Второй параметр исключения (1) — это адрес нарушения.
Выполните следующие действия при отладке этих проблем с помощью средств отладки для Windows:
- .exr -1
- Код исключения
- Параметр[0] — чтение (0), запись (1), выполнение (8)
- Параметр[1] — адрес
- .ecxr
- Регистрация значений при нарушении доступа
- Инструкция сборщика
- Чтение— посмотрите выражение справа от запятой
- Запись — посмотрите выражение слева от запятой
- Выполнение— просмотр адреса выражения
- k
- Просмотр стека вызовов при нарушении доступа
Адрес памяти может быть недопустимым из-за одного из следующих распространенных сценариев:
- Указатель NULL — адреса между 0x0 и 0x10000 (64K), например функция, которая обычно возвращает указатель, возвращаемый значение NULL (0x0), а указатель был доступ без проверки.
- Повреждение памяти — адрес ошибочно или злонамеренно перезаписан — обычно с помощью переполнения буфера (или при выполнении)
- Использование после бесплатного использования — адрес был допустимым, но теперь осуществляется доступ после освобождения (данных) или выгрузки (кода)
- Bit-Flip — проблема с ОЗУ (оборудованием), из-за которой один или несколько битов перевернуты (редкие)
Сведения о проблемах чтения или записи см. в эпизоде чтения или записи .
Сведения о проблемах выполнения см. в эпизоде Execute .
Обратите внимание, что приложения СРЕДЫ CLR вызывают исключение System.NullReferenceException вместо исключения нарушения доступа, если адрес находится между 0x0 и 0x10000 (64K).
Дополнительные ресурсы:
- Внутри — нарушение доступа C0000005 — чтение или запись
- Внутри — нарушение доступа C0000005 — выполнение
- Внутри - .exr
- Внутри - ECXR
- Внутри — пакет SDK для Windows
- Документация Майкрософт — средства отладки для Windows
- Документация Майкрософт. Как выполнить отладку нарушения доступа на C++?
- Документация Майкрософт . Часто задаваемые вопросы об отладке машинного кода
Нарушение доступа — это тип исключения, вызванного тем, что приложение считывает, записывает или выполняет недопустимый адрес памяти.
Код исключения — 0xC0000005
Первый параметр исключения (0) — это тип нарушения; Чтение (0), запись (1) или выполнение (8)
Второй параметр исключения (1) — это адрес нарушения.
Выполните следующие действия при отладке этих проблем с помощью средств отладки для Windows:
- .exr -1
- Код исключения
- Параметр[0] — чтение (0), запись (1), выполнение (8)
- Параметр[1] — адрес
- .ecxr
- Регистрация значений при нарушении доступа
- Инструкция сборщика
- Чтение— посмотрите выражение справа от запятой
- Запись — посмотрите выражение слева от запятой
- Выполнение— просмотр адреса выражения
- k
- Просмотр стека вызовов при нарушении доступа
Адрес памяти может быть недопустимым из-за одного из следующих распространенных сценариев:
- Указатель NULL — адреса между 0x0 и 0x10000 (64K), например функция, которая обычно возвращает указатель, возвращаемый значение NULL (0x0), а указатель был доступ без проверки.
- Повреждение памяти — адрес ошибочно или злонамеренно перезаписан — обычно с помощью переполнения буфера (или при выполнении)
- Использование после бесплатного использования — адрес был допустимым, но теперь осуществляется доступ после освобождения (данных) или выгрузки (кода)
- Bit-Flip — проблема с ОЗУ (оборудованием), из-за которой один или несколько битов перевернуты (редкие)
Сведения о проблемах чтения или записи см. в эпизоде чтения или записи .
Сведения о проблемах выполнения см. в эпизоде Execute .
Обратите внимание, что приложения СРЕДЫ CLR вызывают исключение System.NullReferenceException вместо исключения нарушения доступа, если адрес находится между 0x0 и 0x10000 (64K).
Дополнительные ресурсы:
- Внутри — нарушение доступа C0000005 — чтение или запись
- Внутри — нарушение доступа C0000005 — выполнение
- Внутри - .exr
- Внутри - ECXR
- Внутри — пакет SDK для Windows
- Документация Майкрософт — средства отладки для Windows
- Документация Майкрософт. Как выполнить отладку нарушения доступа на C++?
- Документация Майкрософт . Часто задаваемые вопросы об отладке машинного кода