Quando o Windows usa “A memória não pôde ser 'lida' / 'escrita'” ou “o nome do aplicativo parou de funcionar” por violações de acesso?

2

Qual é a diferença entre as seguintes mensagens de erro?

  1. The instruction at "<address>" referenced memory at "<address>". The memory could not be "read"/"written".

  2. <application name> has stopped working (supondo que ocorreu uma violação de acesso; essa mensagem também é usada para qualquer outro travamento de programa)

Em ambos os casos, o programa executou um acesso de memória inválido (violação de acesso, também falha de segmentação). O que determina a mensagem de erro exata exibida?

Atualizar

  • A mensagem de erro anterior termina com Click on OK to terminate the program. Se um depurador (por exemplo, Visual Studio) estiver instalado, pode haver um botão Cancelar com as palavras Click on CANCEL to debug the program anexadas à mensagem. Outra mensagem de erro, que termina com o Click on OK to terminate the application semelhante, é The application failed to initialize properly.

  • Eu suspeito que essas mensagens sejam geradas por alguma biblioteca de tempo de execução, ignorando o manipulador de falhas normal do Windows. Alguma idéia de quando ou por que essas mensagens de erro apareceriam no lugar da mensagem <application name> has stopped working ?

por bwDraco 01.09.2011 / 07:10

0 respostas