Episódio
Violação de acesso C0000005
Uma violação de acesso é um tipo de exceção causada quando um aplicativo lê, grava ou executa um endereço de memória inválido.
O código de exceção é 0xC0000005
O primeiro parâmetro de exceção (0) é o tipo da violação; Ler (0), Gravar (1) ou Executar (8)
O segundo parâmetro de exceção (1) é o endereço da violação.
Siga estas etapas ao depurar esses problemas com as Ferramentas de Depuração para Windows:
- .exr -1
- Código de Exceção
- Parâmetro[0] - Leitura (0), Gravação (1), Execução (8)
- Parâmetro[1] - Endereço
- .ecxr
- Registrar valores na Violação de Acesso
- Instrução do montador
- Leia - veja a expressão à direita da vírgula
- Escrever - veja a expressão à esquerda da vírgula
- Executar - veja o endereço da expressão
- k
- Exibir a pilha de chamadas na violação de acesso
O endereço de memória pode ser inválido devido a um destes cenários comuns:
- Ponteiro NULL - endereços entre 0x0 e 0x10000 (64K) - por exemplo, uma função que geralmente retorna um ponteiro retornou NULL (0x0), e o ponteiro foi acessado sem verificação
- Corrupção de memória - o endereço foi substituído por engano ou mal-intencionado - geralmente por meio de uma saturação de buffer (ou underrun)
- Use-After-Free - o endereço era válido, mas agora está sendo acessado depois que é liberado (dados) ou descarregado (código)
- Bit-Flip - Problema de RAM (hardware) em que um ou mais bits foram invertidos (raros)
Para problemas de leitura ou gravação, consulte o episódio de leitura ou gravação.
Para problemas de execução , consulte o episódio Executar .
Observe que os aplicativos CLR com lançam uma exceção System.NullReferenceException em vez de uma exceção de violação de acesso quando o endereço está entre 0x0 e 0x10000 (64K).
Recursos adicionais:
- Interior - Violação de Acesso C0000005 - Leitura ou Gravação
- Interior - Violação de Acesso C0000005 - Executar
- Interior - .exr
- Por dentro - .ecxr
- Por dentro - SDK do Windows
- Microsoft Docs - Ferramentas de depuração para Windows
- Microsoft Docs - Como posso depurar uma violação de acesso C++?
- Microsoft Docs - Perguntas frequentes sobre depuração de código nativo
Uma violação de acesso é um tipo de exceção causada quando um aplicativo lê, grava ou executa um endereço de memória inválido.
O código de exceção é 0xC0000005
O primeiro parâmetro de exceção (0) é o tipo da violação; Ler (0), Gravar (1) ou Executar (8)
O segundo parâmetro de exceção (1) é o endereço da violação.
Siga estas etapas ao depurar esses problemas com as Ferramentas de Depuração para Windows:
- .exr -1
- Código de Exceção
- Parâmetro[0] - Leitura (0), Gravação (1), Execução (8)
- Parâmetro[1] - Endereço
- .ecxr
- Registrar valores na Violação de Acesso
- Instrução do montador
- Leia - veja a expressão à direita da vírgula
- Escrever - veja a expressão à esquerda da vírgula
- Executar - veja o endereço da expressão
- k
- Exibir a pilha de chamadas na violação de acesso
O endereço de memória pode ser inválido devido a um destes cenários comuns:
- Ponteiro NULL - endereços entre 0x0 e 0x10000 (64K) - por exemplo, uma função que geralmente retorna um ponteiro retornou NULL (0x0), e o ponteiro foi acessado sem verificação
- Corrupção de memória - o endereço foi substituído por engano ou mal-intencionado - geralmente por meio de uma saturação de buffer (ou underrun)
- Use-After-Free - o endereço era válido, mas agora está sendo acessado depois que é liberado (dados) ou descarregado (código)
- Bit-Flip - Problema de RAM (hardware) em que um ou mais bits foram invertidos (raros)
Para problemas de leitura ou gravação, consulte o episódio de leitura ou gravação.
Para problemas de execução , consulte o episódio Executar .
Observe que os aplicativos CLR com lançam uma exceção System.NullReferenceException em vez de uma exceção de violação de acesso quando o endereço está entre 0x0 e 0x10000 (64K).
Recursos adicionais:
- Interior - Violação de Acesso C0000005 - Leitura ou Gravação
- Interior - Violação de Acesso C0000005 - Executar
- Interior - .exr
- Por dentro - .ecxr
- Por dentro - SDK do Windows
- Microsoft Docs - Ferramentas de depuração para Windows
- Microsoft Docs - Como posso depurar uma violação de acesso C++?
- Microsoft Docs - Perguntas frequentes sobre depuração de código nativo