Episodio
Infracción de acceso C0000005
Una infracción de acceso es un tipo de excepción causada cuando una aplicación lee, escribe o ejecuta una dirección de memoria no válida.
El código de excepción es 0xC0000005
El primer parámetro de excepción (0) es el tipo de la infracción; Lectura (0), Escritura (1) o Ejecución (8)
El segundo parámetro de excepción (1) es la dirección de la infracción.
Siga estos pasos al depurar estos problemas con las herramientas de depuración para Windows:
- .exr -1
- Código de excepción
- Parameter[0] - Read (0), Write (1), Execute (8)
- Parámetro[1] - Dirección
- .ecxr
- Registrar valores en la infracción de acceso
- Instrucción del ensamblador
- Lectura: vea la expresión a la derecha de la coma.
- Escritura: examine la expresión a la izquierda de la coma.
- Ejecutar: examine la dirección de la expresión.
- k
- Ver la pila de llamadas en la infracción de acceso
La dirección de memoria puede no ser válida debido a uno de estos escenarios comunes:
- Puntero NULL: direcciones entre 0x0 y 0x10000 (64K): por ejemplo, una función que normalmente devuelve un puntero devuelto NULL (0x0) y se accedió al puntero sin comprobación.
- Daños en la memoria: la dirección se sobrescribe errónea o malintencionadamente, normalmente a través de una saturación de búfer (o infraejecución)
- Use-After-Free: la dirección era válida, pero ahora se tiene acceso después de liberar (datos) o descargar (código)
- Volteo de bits: problema de RAM (hardware) en el que uno o varios bits se han volteado (poco frecuente)
Para ver problemas de lectura o escritura , consulte el episodio De lectura o escritura .
Para problemas de ejecución , consulte el episodio Ejecutar .
Tenga en cuenta que las aplicaciones CLR con inician una excepción System.NullReferenceException en lugar de una excepción de infracción de acceso cuando la dirección está entre 0x0 y 0x10000 (64K).
Recursos adicionales:
- Dentro de : C0000005 de infracción de acceso: lectura o escritura
- Dentro de : C0000005 de infracción de acceso: ejecutar
- Dentro de - .exr
- Interior: .ecxr
- Dentro de: Windows SDK
- Microsoft Docs: Herramientas de depuración para Windows
- Microsoft Docs: ¿Cómo puedo depurar una infracción de acceso de C++?
- Microsoft Docs: Preguntas más frecuentes sobre la depuración de código nativo
Una infracción de acceso es un tipo de excepción causada cuando una aplicación lee, escribe o ejecuta una dirección de memoria no válida.
El código de excepción es 0xC0000005
El primer parámetro de excepción (0) es el tipo de la infracción; Lectura (0), Escritura (1) o Ejecución (8)
El segundo parámetro de excepción (1) es la dirección de la infracción.
Siga estos pasos al depurar estos problemas con las herramientas de depuración para Windows:
- .exr -1
- Código de excepción
- Parameter[0] - Read (0), Write (1), Execute (8)
- Parámetro[1] - Dirección
- .ecxr
- Registrar valores en la infracción de acceso
- Instrucción del ensamblador
- Lectura: vea la expresión a la derecha de la coma.
- Escritura: examine la expresión a la izquierda de la coma.
- Ejecutar: examine la dirección de la expresión.
- k
- Ver la pila de llamadas en la infracción de acceso
La dirección de memoria puede no ser válida debido a uno de estos escenarios comunes:
- Puntero NULL: direcciones entre 0x0 y 0x10000 (64K): por ejemplo, una función que normalmente devuelve un puntero devuelto NULL (0x0) y se accedió al puntero sin comprobación.
- Daños en la memoria: la dirección se sobrescribe errónea o malintencionadamente, normalmente a través de una saturación de búfer (o infraejecución)
- Use-After-Free: la dirección era válida, pero ahora se tiene acceso después de liberar (datos) o descargar (código)
- Volteo de bits: problema de RAM (hardware) en el que uno o varios bits se han volteado (poco frecuente)
Para ver problemas de lectura o escritura , consulte el episodio De lectura o escritura .
Para problemas de ejecución , consulte el episodio Ejecutar .
Tenga en cuenta que las aplicaciones CLR con inician una excepción System.NullReferenceException en lugar de una excepción de infracción de acceso cuando la dirección está entre 0x0 y 0x10000 (64K).
Recursos adicionales:
- Dentro de : C0000005 de infracción de acceso: lectura o escritura
- Dentro de : C0000005 de infracción de acceso: ejecutar
- Dentro de - .exr
- Interior: .ecxr
- Dentro de: Windows SDK
- Microsoft Docs: Herramientas de depuración para Windows
- Microsoft Docs: ¿Cómo puedo depurar una infracción de acceso de C++?
- Microsoft Docs: Preguntas más frecuentes sobre la depuración de código nativo
¿Quiere hacer algún comentario? Comunique un problema aquí.