DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 150314 - Última revisão: quinta-feira, 10 de Agosto de 2006 - Revisão: 3.0

Este artigo foi publicado anteriormente em PT150314

Nesta página

Sumário

Quando tenta encerrar o computador, iniciar uma aplicação ou iniciar uma aplicação no Windows, poderá obter erros semelhantes ao seguinte:
Ocorreu uma excepção fatal <XY> em xxxx:xxxxxxxx
Os erros de excepção fatal são os códigos devolvidos por um programa nos seguintes casos:
  1. Foi encontrado um acesso a uma instrução ilegal
  2. Foi efectuado um acesso a dados ou código inválido
  3. O nível de privilégio de uma operação é inválido

Quando qualquer uma destas situações ocorre, o processador devolve uma excepção ao sistema operativo que é tratada como um erro de excepção fatal. Na maior parte dos casos, a excepção não é recuperável, requerendo o reinício ou encerramento do sistema, dependendo da gravidade do erro.

No exemplo seguinte de um erro de excepção fatal
Ocorreu uma excepção fatal <XY> em xxxx:xxxxxxxx

o <XY> representa a excepção do processador real, entre 00 e 0F (o h listado após o 0E, 0F e assim sucessivamente nas explicações existentes abaixo é frequentemente omitido da mensagem de erro). O xxxx:xxxxxxxx representa o ponteiro de instrução melhorado para o segmento de código e o endereço de 32 bits é o endereço real onde a excepção ocorreu.

O Windows não causa estes erros, mas dispõe da rotina de tratamento de excepções para esta excepção do processador específica, que apresenta a mensagem acima indicada.

NOTA: Esta secção destina-se apenas a fins informativos. Clique na hiperligação seguinte para passar para a secção de resolução de problemas deste artigo.

Mais Informação

A seguir encontram-se as excepções do processador e as respectivas definições:

00: Erro de divisão

O processador devolve esta excepção quando encontra um erro de divisão. Um erro de divisão ocorre se for tentada uma divisão por zero ou se o resultado da operação não se enquadrar no operando de destino.



02: Interrupção da NMI

A interrupção 2 está reservada para a condição de interrupção sem máscara de hardware. Não é efectuado o trap de excepções através da interrupção 2.



04: Trap de capacidade excedida

O trap de capacidade excedida ocorre após a execução de uma instrução INTO e do bit 0F ter sido definido para 1.

05: Erro de verificação de limites

A instrução BOUND compara o índice da matriz com um limite superior e inferior. Se o índice estiver fora do limite, o processador efectua o trap para a interrupção 05.

06: Erro de código de operação inválido

Este erro é devolvido se qualquer uma das seguintes condições for verdadeira:
  1. O processador tenta descodificar um padrão de bits que não corresponde a nenhuma instrução legal do computador
  2. O processador tenta executar uma instrução que contém operandos inválidos
  3. O processador tenta executar uma instrução de modo protegido enquanto está a funcionar no modo 8086 virtual.
  4. O processador tenta executar um prefixo LOCK com uma instrução que não pode ser bloqueada.

07: Erro de coprocessador não disponível

Este erro ocorre se o computador não estiver equipado com um coprocessador matemático e o bit EM do registo CR0 estiver definido para indicar que a emulação do processador de dados numéricos está a ser utilizada. Sempre que uma operação de vírgula flutuante é executada, ocorre uma interrupção 07.

Este erro também ocorre quando um coprocessador matemático está a ser utilizado e é executada uma comutação de tarefas. A interrupção 07 indica ao processador que o estado actual do coprocessador tem de ser guardado para que este possa ser utilizado por outra tarefa.

08: Erro duplo

Por vezes, o processamento de uma excepção desencadeia uma segunda excepção. Caso isto ocorra, o processador emite uma interrupção 08 para assinalar um erro duplo.

09: Transbordo de segmento do coprocessador

Este erro ocorre quando uma instrução de vírgula flutuante causa um acesso à memória que ultrapassa o fim do segmento. Se o endereço inicial do operando de vírgula flutuante se encontrar fora do segmento, ocorre um erro de protecção geral (interrupção 0D).

10 (0Ah): Erro de segmento de estado de tarefa inválido

Visto que o segmento de estado de tarefa contém vários descritores, existem várias condições que podem causar a excepção 0A. Normalmente, o processador consegue recolher informações suficientes no segmento de estado de tarefa para emitir outro erro que aponta para o problema real. Consulte o Microsoft's Programming the 80386/80486 Guide para obter mais informações.

11 (0Bh): Erro não presente

A interrupção não presente permite que o sistema operativo implemente memória virtual através do mecanismo de segmentação. Quando um segmento é marcado como não presente, esse segmento é comutado para disco. O erro da interrupção 0B é desencadeado quando uma aplicação necessita de aceder ao segmento.

12 (0Ch): Erro de pilha

Ocorre um erro de pilha com um código de erro 0 se uma instrução referencia memória existente para além do limite do segmento da pilha. Se o sistema operativo suportar a segmentos de expansão inferior, o aumento do tamanho da pilha deverá aliviar o problema. O carregamento do segmento de pilha com descritores inválidos causa um erro de protecção geral.

13 (0Dh): Erro de protecção geral

Qualquer condição que não esteja abrangida pelas outras excepções do processador tem como resultado um erro de protecção geral. A excepção indica que este programa foi danificado na memória, o que normalmente tem como resultado a terminação imediata da aplicação.

14 (0Eh): Erro de página

A interrupção de erro de página permite que o sistema operativo implemente a memória virtual numa base por pedido de página. Normalmente, uma interrupção 14 é emitida sempre que ocorre um acesso a uma entrada de directório de página ou a uma tabela de páginas com o bit de presença definido para 0 (não presente). O sistema operativo torna a página presente (normalmente obtendo a página a partir da memória virtual) e emite novamente a instrução em erro que, em seguida, pode aceder ao segmento. Também ocorre um erro de página quando uma regra de protecção de paginação é violada (quando a obtenção falha, quando os dados obtidos são inválidos ou quando o código que emitiu o erro quebrou a regra de protecção do processador). Nestes casos, o sistema operativo assume o comando e toma a acção apropriada.



16 (10h): Erro do coprocessador

Esta interrupção ocorre quando uma excepção de vírgula flutuante sem máscara sinalizou uma instrução anterior. (Visto que o 80386 não tem acesso à unidade de vírgula flutuante, verificar o pino ERROR\ para testar esta condição). Esta interrupção também é desencadeada por uma instrução WAIT, se o bit de emulação de coprocessador matemático estiver definido em CR0.

17 (11h): Erro de verificação de alinhamento

Esta interrupção só é utilizada em CPU 80486. É emitida uma interrupção 17 quando o código em execução com privilégio de anel 3 tenta aceder a um operando de byte que não se encontra num limite de acesso par, a um operando de byte duplo que não seja divisível por quatro ou a um real longo ou temporário cujo endereço não seja divisível por oito. A verificação de alinhamento é desactivada quando a CPU é ligada pela primeira vez e só está activa no modo protegido.

Resolução de problemas relacionados com erros de excepção fatal



Devido às várias condições que podem causar um erro de excepção fatal, o primeiro passo da sua resolução é limitar o número de causas. Para limitar o número de causas, efectue um arranque limpo do computador.

Arranque limpo

O termo "resolução de problemas com arranque limpo" refere-se aos métodos de redução dos problemas que podem ocorrer devido ao ambiente do computador. Muitos dos problemas na execução do Windows ou de programas ocorrem devido a controladores em conflito, a TSR e a outras definições que são carregadas quando o computador é iniciado. Para obter informações adicionais sobre como efectuar um arranque limpo do computador, clique nos números de artigo existentes abaixo para visualizar os artigos na Microsoft Knowledge Base:
192926  (http://support.microsoft.com/kb/192926/PT/ ) Como efectuar a resolução de problemas com arranque limpo para o Windows 98
243039  (http://support.microsoft.com/kb/243039/ ) How to Perform a Clean Boot in Windows 95


Consultar a Microsoft Knowledge Base

Para verificar se a mensagem de erro que lhe foi apresentada se encontra na Microsoft Knowledge Base, utilize os seguintes passos:
  1. Aceda ao Web site Suporte Técnico Microsoft, em: http://support.microsoft.com/support/ (http://support.microsoft.com/?scid=http%3a%2f%2fsupport.microsoft.com%2fsupport%2f)
  2. Clique na hiperligação Pesquisa de suporte, seleccione a opção Procura de suporte avançada e, em seguida, clique em Windows 95, Windows 98 ou Windows 98 Second Edition na caixa O produto que quero procurar é.
  3. Escreva um ou mais parâmetros de consulta relativos ao seu problema na caixa A minha pergunta é. NOTA: Poderá pretender não utilizar o endereço exacto apresentado pela mensagem de erro quando escrever os parâmetros de consulta. O endereço poderá variar de computador para computador, apesar do problema poder ser idêntico. Por exemplo, se receber uma mensagem de erro com um "IOS VXD", utilize os seguintes parâmetros de consulta: ios and vxd and fatal and exception e, em seguida, clique em Go.
  4. É-lhe então apresentada uma lista de artigos que contêm os parâmetros de consulta que introduziu.
  5. Examine os títulos dos artigos para identificar os tópicos que se poderão aplicar ao seu problema.

Para obter informações adicionais sobre como consultar a Microsoft Knowledge Base, clique nos números de artigo existentes abaixo para visualizar os artigos na Microsoft Knowledge Base:
242450  (http://support.microsoft.com/kb/242450/PT/ ) Como consultar a Microsoft Knowledge Base através da utilização de palavras-chave

Mais artigos sobre mensagens de erro de excepção fatal



Para obter informações adicionais sobre mensagens de erro de excepção fatal, clique nos números de artigo existentes abaixo para visualizar os artigos na Microsoft Knowledge Base:
133440  (http://support.microsoft.com/kb/133440/ ) Error Message: This program has caused a Fatal Exception 0D...
192803  (http://support.microsoft.com/kb/192803/ ) Fatal Exception 0D Using ATI All-in-Wonder Pro Video Adapter
175211  (http://support.microsoft.com/kb/175211/ ) Fatal Exception Error When Opening or Closing Control Panel
171195  (http://support.microsoft.com/kb/171195/ ) Fatal Exception Error Suspending and Resuming with MSDLC32
187214  (http://support.microsoft.com/kb/187214/PT/ ) Mensagem de erro: Ocorreu uma excepção fatal 0E em 0028:C02A0201...
190123  (http://support.microsoft.com/kb/190123/ ) Error Message: A Fatal Exception 06 Has Occurred at...
252523  (http://support.microsoft.com/kb/252523/ ) Fatal Exception Error When Attempting to Connect to the Internet


NOTA: A lista de artigos acima existente não é exaustiva. Se um dos artigos listados acima não disse respeito ao seu problema, utilize os passos descritos na secção Consultar a Microsoft Knowledge Base deste artigo para obter mais informações.

Referências

Microsoft's 80386/80486 Programming Guide, Second Edition

The Indispensable PC Hardware Book, Second Edition

Microsoft Press Computer Dictionary, Second Edition

A informação contida neste artigo aplica-se a:
  • Microsoft Windows 98 Standard Edition
  • Microsoft Windows 95
  • Microsoft Windows 98 Segunda Edição
  • Microsoft Windows Millennium Edition
Palavras-chave: 
kbinfo kbwinme win95 win98 KB150314
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft