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

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


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 uma violação de acesso tenha ocorrido; essa mensagem é usada para qualquer outro travamento de programa também)

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 Cancelar botão com as palavras Click on CANCEL to debug the program anexado à mensagem. Outra mensagem de erro, que termina com o semelhante Click on OK to terminate theapplication, é The application failed to initialize properly.

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


2


origem




Respostas: