Portal de construção - Casa. Aquecedores de água. Chaminés. Instalação de aquecimento. Aquecedores. Equipamento

Como abrir janelas de despejo 7. Como entender qual é o problema da tela azul (BSOD) ou como abrir um arquivo de despejo

A tela azul com erro de despejo de memória que aparece na tela antes de o sistema tentar reiniciar, mudando sua cor para azul, pode ser causada por diversos motivos pelos quais o sistema operacional para de funcionar corretamente. Como resultado, todo o conteúdo memória de acesso aleatórioé automaticamente despejado no arquivo que contém os dados. Essa mensagem ocorre principalmente de forma aleatória no sistema operacional Windows quando o sistema é reinicializado e começa a despejar memória física e, para aqueles que estão familiarizados com ela, referem-se a ela como a tela azul da morte.
Detectar esse erro é bastante fácil, pois a mensagem o descreve e muda a cor da tela para azul e o sistema é reiniciado continuamente. Existem vários motivos pelos quais o sistema operacional deixa de funcionar da maneira que deveria funcionar. O motivo mais comum para a ocorrência de um erro de despejo de memória física é a falta de compatibilidade entre os componentes de software e hardware.

Normalmente, operando Sistema Windows capaz de realizar multitarefa ao mesmo tempo, mas às vezes, quando muitos processos com níveis de prioridade semelhantes estão em execução no sistema, esse erro pode ocorrer.

A principal razão pela qual esse erro ocorre é um problema com o registro do Windows. Os outros dois erros mencionados acima podem ser facilmente resolvidos, mas devem ser tratados corretamente com procedimentos passo a passo para que o sistema volte a funcionar normalmente. Uma versão original do Windows funcionará corretamente, pois esses arquivos de registro são muito famosos e, se estiverem faltando, podem causar erros de tela azul.

Como corrigir erro de despejo de memória de tela azul?

Existir várias maneiras com o qual você pode resolver esse problema de despejo de memória no menor tempo possível. Às vezes, há apenas um erro que é a causa da tela azul que deve ser sugerida ou exibida na tela azul, mas se não houver essa mensagem de erro, você poderá encontrar uma solução classificando as seguintes questões:

1. Verifique o gerenciador de dispositivos

Há uma grande chance de que devido a problemas de compatibilidade entre novos hardwares ou softwares, entre drivers já instalados, ocorra um erro e apareça uma tela azul.

Nesses casos, só existe uma solução: remover versões anteriores do hardware ou Programas que está causando o erro e substitua-o pela nova versão reinstalando-o.

Ao instalar uma nova versão, para evitar mais erros, você deve sempre se certificar de que esses drivers são compatíveis com o sistema operacional que você está usando no seu computador. Existem vários softwares de terceiros disponíveis na Internet que ajudam a rastrear todos os drivers que foram instalados recentemente e o programa também verifica se eles ainda apresentam algum problema ou não.

Se houver um problema com os drivers, também é possível que o driver do dispositivo que você está usando tenha um problema que esteja fazendo com que o sistema operacional não funcione corretamente. Assim, aparece a tela azul da morte.

2. Restaurando o Registro do Windows

Para qualquer sistema operacional para que funcione corretamente é necessário ter todos os arquivos corretamente instalados e verificados. O arquivo de registro do sistema operacional é um arquivo muito importante que deve estar presente nos arquivos do sistema.

Há momentos em que o arquivo de registro do sistema operacional inclui várias entradas inválidas que nem estão presentes no sistema ou o arquivo de registro está corrompido. Isso resulta em um erro de despejo de memória que causa uma tela azul.

Para quem tem conhecimento sutil do sistema operacional e acesso normal à Internet, pode atualizá-lo sozinho, mas esse método também pode ser arriscado. Para obter a melhor chance de perfeição, compre sempre um software genuíno que resolva todos os problemas de registro.

Ele verifica e corrige automaticamente qualquer problema relacionado ao registro do sistema operacional.

3. Verifique os módulos de memória

Às vezes também aparece uma tela azul e algum tipo de mensagem de erro, que geralmente diz: “UNEXPECTED_KERNEL_MODE_TRAP”, esse erro geralmente significa que o erro se deve principalmente a um problema de memória.

Para resolver o problema de memória do seu computador, você precisa de dois módulos principais que podem ser verificados SIMM e CMOS. SIMM significa módulos de memória embarcados únicos, que lidam com a compatibilidade de velocidade do sistema operacional e CMOS significa Complementary Metal Oxide Semiconductor, que deve ser configurado corretamente de acordo com a configuração da RAM.

Na maioria dos casos, verificar esses dois módulos pode fazer maravilhas se os erros de tela azul forem corrigidos, mas se não, a única solução é substituir toda a memória instalada do sistema operacional.

4. Repare um disco rígido danificado

Um disco rígido danificado também pode ser a causa do despejo de memória da tela azul do computador. O sistema operacional Windows foi projetado de forma que possua uma funcionalidade de verificação de diagnóstico que verifica se o disco rígido está funcionando normalmente ou não, e também verifica se há erros que causam problemas.

Mas, por algum motivo, essas funções de diagnóstico param de funcionar e não conseguem verificar ou ler nenhum disco rígido. Nessas situações, o terminador, que é a interface, deve ser verificado para solucionar erros.

5. Verifique se há vírus

Se todos os motivos acima não resolveram o erro de tela azul, deve haver um motivo que está bloqueando todas as possibilidades e causando esse erro de despejo de memória.

Esse motivo pode ser devido a um vírus ou qualquer outro malware cuja presença impede o funcionamento adequado do sistema operacional. Existe um fluxo significativo de dados entre o sistema operacional e o disco rígido e após um vírus ou qualquer outro programa malicioso Disco rígido pode estar corrompido, fazendo com que o fluxo também seja interrompido.

Isso pode levar a uma tela azul mortal que eventualmente descarrega a memória física e reinicia o sistema continuamente.

Esses tipos de erros podem ser resolvidos baixando uma versão original do antivírus em seu computador, mas se você já possui um antivírus instalado, só há uma solução: desinstalar esta versão e baixar uma nova versão do antivírus.

Após o arquivo ser verificado corretamente e removido do sistema, o usuário deve verificar novamente a tela azul após reiniciar o computador.

Esta breve nota tem como objetivo mostrar como você pode configurar o sistema para ter à sua disposição uma emergência Despejo de memória do Windows, ou seja, um dump que pode ser criado em caso de falha crítica, caracterizada pelo aparecimento de uma tela azul da morte (BSOD). O que é um dump em geral, por que precisamos dele e o que é, que problemas foi concebido para resolver e que informações contém?

Despejo de memória (despejo de memória) - o conteúdo da memória de trabalho do processo, do kernel ou de todo o sistema operacional, incluindo, além das áreas de trabalho, informações adicionais sobre o estado dos registros do processador, o conteúdo da pilha e outros estruturas de serviço.

Por que precisamos deste conteúdo, ou seja, Despejo de memória do Windows? Talvez o despejo de memória mais comum seja usado para investigar as causas de uma falha do sistema (), que causou a parada completa do sistema operacional. Além disso, o estado da memória pode ser utilizado para outros fins. Também importante é o fato de que um despejo de memória é literalmente a única maneira de obter informações sobre qualquer falha! E remover (receber) um despejo de memória do sistema é, de fato, o único método preciso de obter uma impressão (cópia) instantânea do conteúdo da memória física do sistema.

Quanto mais precisamente o conteúdo do dump refletir o estado da memória no momento da falha, mais poderemos analisar a situação de emergência. Portanto, é extremamente importante obter exatamente a cópia atual da memória física do sistema de forma estritamente certo momento o tempo imediatamente antes do acidente. E a única maneira de fazer isso é criar um despejo de memória completo. O motivo é bastante trivial - quando ocorre um crash dump da memória do sistema, seja como resultado de uma falha ou como resultado de uma situação simulada artificialmente, o sistema neste momento de receber o controle das funções de emergência (KeBugCheckEx) está em um estado absolutamente inalterado (estático), portanto, entre o momento em que ocorre a falha e o momento em que os dados são gravados na mídia, nada altera o conteúdo da memória física e eles são gravados no disco em seu estado original. Bem, isso é em teoria, mas ocasionalmente na vida, mas há situações em que, devido a componentes de hardware defeituosos, o próprio despejo de memória pode ser danificado ou a estação pode congelar durante o processo de gravação de despejo.

Na grande maioria dos casos, desde o momento em que começa o processo de criação de um crash dump de memória, até o momento em que o conteúdo da memória é gravado no disco, as informações na memória permanecem inalteradas.

Teoricamente, a estática (imutabilidade) da "pegada" de memória é explicada pelo fato de que quando a função KeBugCheckEx é chamada, que exibe informações sobre o travamento e inicia o processo de criação de um dump de memória, o sistema já está completamente parado e o o conteúdo da memória física é gravado nos blocos ocupados no disco pelo arquivo de paginação, após o que, já durante a inicialização subsequente do sistema operacional, é despejado em um arquivo na mídia do sistema. Bem, quase uma vez observei uma situação em que uma falha placa-mãe impediu que o despejo de memória fosse salvo: a) congelando a lógica de salvamento do despejo durante a operação (o processo não atingiu 100%), b) corrompendo o arquivo de despejo de memória (as estruturas amaldiçoadas do depurador), c) gravando arquivos de despejo memory.dmp de comprimento nulo. Portanto, apesar do sistema já estar completamente parado no momento da criação do despejo de memória e apenas o código de emergência estar funcionando, o hardware defeituoso pode fazer seus próprios ajustes em qualquer lógica, sem exceção, em qualquer estágio da operação.
Tradicionalmente, em Estado inicial Os despejos de memória do Windows são armazenados usando blocos de disco alocados para o arquivo de paginação (arquivo de paginação). Então, após a ocorrência de uma tela azul e uma reinicialização, os dados são movidos para um arquivo separado e, em seguida, o arquivo é renomeado de acordo com um padrão dependendo do tipo de despejo. Porém, a partir do Windows Vista, esse estado de coisas pode ser alterado, agora o usuário tem a oportunidade de salvar um dump dedicado sem a participação do arquivo de paginação, colocando as informações sobre o travamento em um arquivo temporário. Isso foi feito para eliminar erros de configuração associados a configurações incorretas de tamanho e posição do arquivo de paginação, que muitas vezes levavam a problemas no processo de salvamento de um despejo de memória.
Vamos ver quais tipos de dumps o sistema operacional Windows nos permite criar:

  • Despejo de memória do processo (aplicativo);
  • Despejo de memória do kernel;
  • Despejo de memória completo (despejo da parte disponível da memória física do sistema).

Todos os crash dumps podem ser divididos em duas categorias principais:

  • Crash dumps com informações sobre a exceção lançada. Eles geralmente são criados automaticamente quando ocorre uma exceção não tratada no aplicativo/kernel e, consequentemente, o depurador do sistema (integrado) pode ser chamado. Nesse caso, as informações sobre a exceção são gravadas no dump, o que facilita a determinação do tipo de exceção e do local da ocorrência nas análises posteriores.
  • Crash dumps sem informações de exceção. Geralmente criado pelo usuário manualmente quando é necessário criar apenas um snapshot do processo para análise posterior. Esta análise não implica a determinação do tipo de exceção, uma vez que não ocorreu nenhuma exceção, mas sim uma análise de um tipo completamente diferente, por exemplo, o estudo de estruturas de dados de processos e assim por diante.

Configuração de despejo de kernel

Você deve estar logado como administrador conta para executar as etapas nesta seção.

Vamos direto para a configuração das configurações de despejo de memória do Windows. Primeiro, precisamos ir para a janela de propriedades do sistema de uma das seguintes maneiras:

  1. Clique com o botão direito no ícone "Meu Computador" - "Propriedades" - "Configurações avançadas do sistema" - "Avançado".
  2. Botão "Iniciar" - "Painel de Controle" - "Sistema" - "Configurações avançadas do sistema" - "Avançado".
  3. Atalho de teclado "Windows" + "Pausa" - "Configurações avançadas do sistema" - "Avançado".

  4. sistema de controle.cpl,3
  5. Correr em linha de comando(cmd):
    Propriedades do sistema avançadas

O resultado das ações descritas é abrir a janela “Propriedades do Sistema” e selecionar a aba “Avançado”:

Depois disso, na seção “Download e Recuperação”, clicamos, selecionamos “Opções” e assim abrimos uma nova janela chamada “Download e Recuperação”:

Todas as configurações de despejo de memória são agrupadas em um bloco de configurações denominado Falha do sistema. Neste bloco, podemos definir os seguintes parâmetros:

  1. Grave eventos no log do sistema.
  2. Execute uma reinicialização automática.
  3. Gravando informações de depuração.
  4. Despejar arquivo.
  5. Substitua um arquivo de despejo existente.

Como você pode ver, muitos dos parâmetros da lista são bastante triviais e fáceis de entender. No entanto, gostaria de me alongar no parâmetro "Arquivo de despejo" com mais detalhes. O parâmetro é apresentado como uma lista suspensa e possui quatro valores possíveis:

Despejo de memória pequeno

Um pequeno despejo de memória (minidespejo) é um arquivo que contém a menor quantidade de informações sobre falhas. O menor de todos os despejos de memória possíveis. Apesar das desvantagens óbvias, muitas vezes são os minidespejos que são usados ​​como informações de travamento para serem repassados ​​a um fornecedor de driver terceirizado para investigação mais aprofundada.
Composto:

  • Mensagem de erro.
  • Valor de erro.
  • Opções de erro.
  • Contexto do processador (PRCB) que falhou.
  • Informações do processo e contexto do kernel (EPROCESS) para o processo que causou a falha, com todos os seus threads.
  • As informações do processo e o contexto do kernel (ETHREAD) do thread que causou a falha.
  • A pilha do modo kernel do thread que causou a falha.
  • Lista de drivers carregados.

Alojamento: %SystemRoot%\Minidump\MMDDYY-XXXXX-NN.dmp. Onde MMDDYY é o mês, dia e ano respectivamente, NN é o número de série do dump.
Volume: O tamanho depende do número de bits do sistema operacional: apenas 128 kilobytes são necessários para um sistema operacional de 32 bits e 256 kilobytes para um sistema operacional de 64 bits no arquivo de paginação (ou no arquivo especificado em DedicatedDumpFile). Como não podemos definir um tamanho tão pequeno, arredondamos para 1 megabyte.

Despejo de memória do kernel

Este tipo de dump contém uma cópia de toda a memória do kernel no momento da falha.
Composto:

  • Lista de processos em execução.
  • O estado do thread atual.
  • Páginas de memória em modo kernel presentes na memória física no momento da falha: memória de driver em modo kernel e memória de programa em modo kernel.
  • Memória de camada com reconhecimento de hardware (HAL).
  • Lista de drivers carregados.

O despejo de memória do kernel está faltando páginas de memória não alocadas e páginas de modo de usuário. Concordo, é improvável que as páginas do processo do modo de usuário sejam do nosso interesse durante uma falha do sistema (BugCheck), já que geralmente uma falha do sistema é iniciada pelo código do modo kernel.

Tamanho: varia dependendo do tamanho do espaço de endereço do kernel, da alocação do sistema operacional e do número de drivers de modo kernel. Normalmente, é necessário cerca de um terço da quantidade de memória física no arquivo de troca (ou no arquivo especificado por DedicatedDumpFile). Pode variar.

Despejo de memória completo

Um despejo de memória completo contém uma cópia de toda a memória física (RAM) no momento da falha. Conseqüentemente, todo o conteúdo da memória do sistema também entra no arquivo. Isto é uma vantagem e uma grande desvantagem, já que seu tamanho pode ser significativo em alguns servidores com grandes quantidades de RAM.
Composto:

  • Todas as páginas da memória física "visível". Esta é praticamente toda a memória do sistema, com exceção das áreas utilizadas pelo hardware: BIOS, espaço PCI, etc.
  • Processar dados que estavam em execução no sistema no momento da falha.
  • Páginas de memória física que não estão mapeadas para o espaço de endereço virtual, mas que podem ajudar na investigação da causa da falha.

Um despejo de memória completo não inclui, por padrão, áreas de memória física usadas pelo BIOS.
Localização: %SystemRoot%\MEMORY.DMP . O dump anterior é substituído.
Tamanho: O arquivo de paginação (ou o arquivo especificado em DedicatedDumpFile) requer um tamanho igual ao tamanho da memória física + 257 megabytes (esses 257 MB são divididos em algum tipo de cabeçalho + dados do driver). Na verdade, em alguns sistemas operacionais, o limite inferior do arquivo de paginação pode ser definido exatamente para o valor do tamanho da memória física.

Despejo de memória automático

A partir do Windows 8/Windows Server 2012, um novo tipo de dump foi introduzido no sistema chamado "Automatic Memory Dump", que é definido como o tipo padrão. Nesse caso, o próprio sistema decide qual dump de memória gravar em uma situação de falha específica. Além disso, a lógica de escolha depende de muitos critérios, incluindo a frequência de “queda” do sistema operacional.

Depois de alterar a configuração de despejo de memória do Windows, talvez seja necessário reiniciar o computador.

Configurações de registro

A chave de registro que define as configurações de despejo de memória:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

Opções:

Parâmetro Tipo Descrição
reinicialização automática REG_DWORD Ative/desative a reinicialização automática quando ocorrer um BSOD.
CrashDump habilitado REG_DWORD O tipo de dump que está sendo criado.
  • 0 - não crie um despejo de memória;
  • 1 - despejo de memória completo;
  • 2 - despejo de memória central;
  • 3 - pequeno despejo de memória;
Despejar arquivo REG_EXPAND_SZ O caminho e o nome do dump principal e do dump completo.
Filtros de despejo REG_MULTI_SZ Filtro de driver na pilha de drivers de despejo de memória. Permite adicionar novas funcionalidades na fase de criação de crash dumps. Por exemplo, criptografando o conteúdo de um dump. Alterar o valor não é recomendado.
registrar evento REG_DWORD Grave um evento no log do sistema.
MinidumpDir REG_EZPAND_SZ O caminho e o nome do pequeno despejo de memória.
Contagem de minidespejos REG_DWORD O número máximo de pequenos despejos de memória. Quando excedido, as versões mais antigas começam a ser substituídas.
Substituir REG_DWORD Substitua um arquivo de despejo existente. Somente para despejo de memória do kernel e despejo de memória completo.
IgnorarPagefileSize REG_DWORD Ignora o arquivo de paginação padrão como um local para armazenar temporariamente (intermediariamente) um despejo de memória. Indica que o despejo de memória deve ser gravado em um arquivo separado. Usado em conjunto com a opção DedicatedDumpFile.
ArquivoDedicadoDump REG_EZPAND_SZ O caminho e o nome do arquivo alternativo temporário para gravar o despejo de memória. Na segunda passagem, os dados ainda serão movidos para DumpFile/MinidumpDir.

Criando manualmente um despejo de memória

Acima, descrevemos as configurações para criar automaticamente despejos de memória do sistema no caso de um erro crítico, ou seja, uma exceção não tratada no código do kernel. Mas em Vida real, além da falha do sistema operacional, há situações em que você precisa obter um despejo de memória do sistema em um determinado momento. Como estar neste caso? Existem métodos para obter uma cópia instantânea de toda a memória física, como usar o comando .dump nos depuradores WinDbg/LiveKD. LiveKD é um programa que permite executar o depurador de kernel Kd em um sistema em execução no modo local. O depurador WinDbg também possui um recurso semelhante. No entanto, o método on-the-fly de obtenção de um dump não é preciso, pois o dump criado neste caso é "inconsistente", pois leva tempo para criar um dump, e no caso de usar um depurador de modo kernel , o sistema continua a funcionar e a fazer alterações nas páginas da memória.

Ao aconselhar os clientes, percebi que muitas vezes a única maneira de lidar com a tela azul da morte (Tela Azul da Morte, BSoD) é solucionar o problema pelo número do erro STOP. Normalmente, esta abordagem pode ajudar a escolher direção geral resolvendo o problema, mas nem sempre permitindo localizá-lo. Por exemplo, determine qual driver de dispositivo específico está causando o BSoD. A rigor, a análise de despejos de memória é o principal método para lidar com erros STOP.

Quando ocorre um erro STOP Microsoft Windows pode escrever informações de depuração. Para fazer isso, você deve executar as seguintes etapas:

1. Pressione o botão Começar e selecione no menu Contexto parágrafo Painel de controle
2. Clique duas vezes no ícone Sistema
3. Abra uma guia Adicionalmente e pressione o botão
4. No campo Gravando informações de depuração Selecionar item Despejo de memória pequeno (64 KB)

Um pequeno arquivo de despejo de memória registra informações mínimas que podem ser usadas para determinar a causa de uma falha no computador. Isso requer um arquivo de troca de pelo menos 2 MB no volume de inicialização. Por padrão, pequenos arquivos de despejo de memória são armazenados na pasta %SystemRoot%\Minidump.

Pequenos arquivos de despejo de memória contêm as seguintes informações:

  • Mensagem de erro fatal, seus parâmetros e outros dados
  • Lista de drivers baixados
  • Contexto do processador (PRCB) que falhou
  • Informações do processo e contexto do kernel (EPROCESS) para o processo que causou o erro
  • Informações do processo e contexto do kernel (ETHREAD) para o thread que causou o erro
  • Pilha de chamadas no modo kernel para o thread que causou o erro

A vantagem do pequeno arquivo de despejo de memória é que ele possui tamanho pequeno. Atualmente, a quantidade de RAM instalada nos computadores é medida em gigabytes, portanto, salvar um arquivo desse tamanho demorará muito e poderá causar dificuldades na hora de espaço confinado disco rígido. Por outro lado, as informações limitadas contidas em um pequeno arquivo de dump nem sempre permitem detectar erros que não foram causados ​​diretamente pelo thread que estava em execução no momento em que ocorreram.

Utilitários são usados ​​para analisar despejos de memória kd.exe E windbg.exe. Esses utilitários fazem parte do conjunto Ferramentas de depuração para Windows. Para simplificar o trabalho com eles, recomendo usar um script (de Alexander Suhovey). Você também precisará de um utilitário reg.exe(incluído no Microsoft Windows XP e posterior; para Windows 2000 incluído nas Ferramentas de Suporte do Windows 2000).

Baixe e descompacte o arquivo com o script em uma pasta D:\KDFE. O depurador requer arquivos de símbolos para funcionar, que podem ser baixados do mesmo local que as Ferramentas de Depuração para Windows. O tamanho total do pacote com esses arquivos é bastante impressionante (pode ser superior a 1GB dependendo da plataforma escolhida). Portanto, o script é configurado para baixar automaticamente apenas os arquivos de símbolos necessários do Microsoft Symbol Server para trabalhar com um despejo de memória específico e armazená-los localmente no disco para uso posterior. Se necessário, você pode editar o script e alterar a variável caminho_smb, que aponta para a pasta onde kd.exe salvará os arquivos necessários.

Para usar, execute kdfe.cmd com o nome do arquivo de despejo como parâmetro. Por exemplo:

D:\KDFE>kdfe mini111208-01.dmp

Analisando "D:\KDFE\Mini111208-01.dmp", aguarde... Concluído.

Data do acidente: Quarta-feira, 12 de novembro 08:35:56.214 2008 (GMT+2)
Código de erro de parada: 0x50
Nome do processo: AUM.exe
Provavelmente causado por: nv4_disp.dll (nv4_disp+41213)

Deve-se observar que há situações em que, devido ao funcionamento incorreto de um dos drivers, ocorre posteriormente um erro STOP em um driver completamente normal. Neste caso, recomendo usar o utilitário verificador.exe(cm.

Ou como também é chamado de BSOD, pode estragar a vida do computador e do servidor, e também acabou por ser uma máquina virtual. Hoje vou te contar como analisar a tela azul de despejo de memória no Windows, desde o diagnóstico correto e obtendo o motivo pelo qual seu sistema não funciona, 99 por cento de sua solução, principalmente um engenheiro de sistema, simplesmente deve ser capaz de fazer isso, e mesmo no menor tempo possível, então como isso uma empresa pode perder muito dinheiro como resultado da inatividade do serviço.

Descriptografia BSOD

Vamos primeiro dar uma olhada no que significa esta abreviatura, BSOD da Tela Azul da Morte em inglês ou outro modo de erro STOP.

Erros de Tela Azul da Morte ocorrem quando razões diferentes, entre os quais pode haver problemas com drivers, pode haver algum tipo de aplicativo com defeito ou um módulo de RAM com defeito. Assim que você tiver uma tela azul no Windows, seu sistema criará automaticamente um arquivo de despejo de memória de falha, que iremos analisar.

Como configurar a criação de despejo de memória

Por padrão, o windows cria um arquivo de dump de memória memory.dmp durante uma tela azul, agora vou mostrar como ele está configurado e onde está armazenado, vou mostrar usando o Windows Server 2008 R2 como exemplo, já que recentemente tive uma tarefa para estudar o problema da tela azul em uma máquina virtual. Para descobrir onde as janelas de despejo de memória estão configuradas, abra Iniciar e clique com o botão direito no ícone Computador e selecione Propriedades.

Como analisar a memória de despejo de tela azul nas propriedades do computador Windows

Como analisar a memória de despejo de tela azul nas configurações do sistema Windows

Vá para a guia Download avançado e recuperação. Clique no botão Configurações

Como analisar a memória de despejo de tela azul no download e recuperação do Windows

Onde o arquivo memory.dmp está armazenado

e vemos que primeiramente vale a pena marcar a caixa de seleção para realizar uma reinicialização automática, para escrever informações de depuração, dump de memória do kernel está selecionado e abaixo é onde o dump de memória é salvo %SystemRoot%\MEMORY.DMP

Vamos até a pasta c:\windows\ e encontre o arquivo MEMORY.DMP, ele contém a tela azul dos códigos de morte

Como analisar a memória de despejo de tela azul em Windows-memory.dmp

Como configurar o mini dump

Os erros de tela azul da morte também ficam registrados em um pequeno despejo de memória, ele é configurado no mesmo local, basta selecioná-lo.

Ele é armazenado na pasta c:\windows\minidump. A vantagem é que leva menos espaço e para cada tela azul é criado um arquivo separado. Você sempre pode ver o histórico da tela azul.

Agora que descobrimos onde procurar o arquivo de despejo de memória, precisamos aprender como interpretá-lo e entender o motivo pelo qual ocorre a tela azul da morte. O Microsoft Kernel Debugger nos ajudará nesta tarefa. Você pode baixar o Microsoft Kernel Debugger do site oficial, o principal é selecionar a versão desejada do sistema operacional, se alguém estiver quebrado, você pode baixá-lo do disco Yandex através de um link direto. Também faz parte do ADK.

Baixe Microsoft Kernel Debugger, no final você terá arquivo pequeno que permitirá que você baixe tudo o que precisa da Internet. Vamos lançá-lo.

não aderirá ao programa de melhoria da qualidade

clique em Aceitar e concordar com a licença

Como instalar o Microsoft Kernel Debugger - concorde com a licença

O Microsoft Kernel Debugger começará a ser instalado

Como instalar o Microsoft Kernel Debugger - Instalação MKD

Vemos que o Microsoft Kernel Debugger foi instalado com sucesso

Depois disso, vemos que a pasta Debugging Tools for Windows apareceu no início para sistemas de 32 e 64 bits.

Além do próprio pacote Ferramentas de Depuração para Windows, você também precisará de um conjunto de símbolos de depuração - Símbolos de Depuração. O conjunto de caracteres de depuração é específico para cada sistema operacional no qual o BSoD foi corrigido. Portanto, você terá que carregar um conjunto de caracteres para cada sistema operacional, cujo trabalho deverá analisar. O Windows XP de 32 bits exigirá o conjunto de caracteres do Windows XP de 32 bits, o sistema operacional de 64 bits exigirá o conjunto de caracteres do Windows XP de 64 bits. Para outros sistemas operacionais da família Windows, os conjuntos de caracteres são selecionados de acordo com o mesmo princípio. Você pode baixar os símbolos de depuração aqui. Recomenda-se instalá-los em %systemroot%\símbolos embora eu goste de instalá-los em pastas separadas e não em lixo Pasta Windows.

Análise de tela azul em ferramentas de depuração

Depois de instalar os símbolos de depuração no sistema em que havia uma tela azul da morte, execute as ferramentas de depuração

Como instalar o Microsoft Kernel Debugger - Iniciar

Antes de analisar o conteúdo do despejo de memória, você precisará fazer alguns ajustes no depurador. Especificamente, informe ao programa qual caminho procurar pelos símbolos de depuração. Para fazer isso, selecione Arquivo > Caminho do arquivo de símbolos… no menu.

Clique em Navegar...

e especificar a pasta onde instalamos os símbolos de depuração para o despejo de memória em questão, você pode especificar várias pastas separadas por vírgulas e pode solicitar informações sobre os símbolos de depuração necessários diretamente pela Internet, de um servidor público da Microsoft. Assim, você terá o máximo uma nova versão personagens. Você pode fazer isso da seguinte maneira - no menu Arquivo > Caminho do arquivo de símbolos... digite:

SRV*%systemroot%\symbols*http://msdl.microsoft.com/download/symbols

Como analisar a tela azul da morte

Copiamos do computador onde a tela azul apareceu, o arquivo memory.dmp ou minidump, e abrimos, selecionamos Arquivo> Abrir Crash Dump... no menu e selecionamos o arquivo necessário para consideração.

Como analisar a tela azul da morte-01

Por exemplo, escolha minidespejo

Como analisar a tela azul da morte - abra o minidespejo

A análise do minidump será iniciada, vemos que apareceu um link para o erro, clique nele para obter informações mais detalhadas sobre a tela azul.

Como analisar a tela azul da morte-03

E vemos um aplicativo com falha que trava seu sistema. Você também pode ver com mais detalhes o que há de errado clicando no link.

Como analisar a tela azul da morte-04

Obtenha informações mais detalhadas sobre o motivo da tela azul.

Como analisar a tela azul da morte-05

Se você abrir memory.dmp, obterá uma imagem semelhante e verá por que tem uma tela azul.

Como analisar a tela azul da morte-06

É tão fácil diagnosticar e eliminar a tela azul da morte.

Uma das falhas mais comuns do Windows são as exceções do sistema, que o usuário vê como uma “tela azul da morte” (BSOD). Via de regra, esse erro fatal ocorre devido a mau funcionamento de drivers, hardware (mais frequentemente ao carregar o sistema operacional) ou devido à ação de vírus e antivírus.

A tela azul da morte contém informações sobre as causas que causaram a exceção (na forma de um código de erro STOP no formato 0x0000007b), endereços de memória que causaram o acesso à exceção e outras informações úteis. Essa informação é chamada de erro STOP, cujos parâmetros variáveis ​​são apenas endereços de memória. Às vezes também contém o nome do arquivo que causou a exceção.

Todas essas informações ficam contidas na tela por um curto período (até 100 segundos), após o qual o computador é reiniciado. Durante esse curto período, via de regra, é formado um despejo de memória, que é gravado em um arquivo. Uma das formas profissionais importantes de diagnosticar falhas é analisar um despejo de memória, que será discutido em detalhes neste artigo.

O que é um despejo

  • dump (Inglês) - monte de lixo; jogar fora; buraco; favela.
  • dump (despejo de memória) - 1) dump, exibindo o conteúdo da RAM para impressão ou tela; 2) “instantâneo” de RAM; dados obtidos como resultado de dumping; 3) remoção de emergência, desligamento, reinicialização.
  • dumping - dumping, dumping.

As configurações para salvar um despejo de memória são armazenadas no registro do sistema Windows.

Informações de despejo de memória no registro do sistema:

Na chave do Registro do Windows, o despejo de memória é definido pelas seguintes configurações:

– Parâmetro REG_DWORD AutoReboot com valor 0×1 (opção Executar reinicialização automática da janela auxiliar Boot and Restore da caixa de diálogo Propriedades do Sistema);

– Parâmetro REG_DWORD CrashDumpEnabled com valor 0x0 se nenhum dump de memória for criado; 0x1 - Despejo de memória completo; 0x2 - Despejo de memória do kernel; 0×3 – Despejo de memória pequeno (64KB);

– Parâmetro REG_EXPAND_SZ DumpFile com valor padrão %SystemRoot%\MEMORY.DMP (local de armazenamento do arquivo de dump);

– Parâmetro REG_DWORD LogEvent com valor padrão 0×1 (opção Log event to system log na janela Boot and Restore);

– Parâmetro REG_EXPAND_SZ MinidumpDir com valor padrão %SystemRoot%\Minidump (opção Pasta de dump pequena da janela Boot and Restore);

– Parâmetro REG_DWORD Substituir com valor padrão de 0×1 (opção Substituir um arquivo de dump existente da janela Carregar e Restaurar);

– Parâmetro REG_DWORD SendAlert com valor padrão 0x1 (opção Enviar notificação administrativa na janela Boot and Restore).

Como o sistema cria um arquivo de despejo de memória

Durante a inicialização, o sistema operacional verifica as configurações de despejo de memória na chave de registro. Se pelo menos um parâmetro for especificado, o sistema gera um mapa dos blocos de disco ocupados pelo arquivo de paginação no volume de inicialização e o armazena na memória. O sistema também determina qual driver de dispositivo de disco controla o volume de inicialização, calcula somas de verificação para a imagem na memória do driver e para estruturas de dados que devem ser números inteiros para que o driver execute operações de E/S.

Após uma falha, o kernel do sistema verifica a integridade do mapa de arquivos de paginação, do driver de disco e das estruturas de controle do driver de disco. Se a integridade dessas estruturas não for violada, o kernel do sistema chama funções especiais de E/S do driver de disco, projetadas para salvar a imagem da memória após uma falha do sistema. Essas funções de E/S são autossuficientes e não dependem dos serviços do kernel do sistema, porque os programas responsáveis ​​por escrever o despejo de memória não podem fazer suposições sobre quais partes do kernel do sistema ou drivers de dispositivo foram danificadas durante uma falha. O kernel do sistema grava dados da memória no mapa do setor do arquivo de paginação (não é necessário usar drivers do sistema de arquivos).

Primeiro, o kernel do sistema verifica o status de cada componente envolvido no processo de salvamento do dump. Isso é feito para que a gravação direta nos setores do disco não danifique os dados que estão fora do arquivo de paginação. O tamanho do arquivo de paginação deve ser 1 MB maior que o tamanho da memória física, pois quando as informações são gravadas no dump, é criado um cabeçalho que contém a assinatura do crash dump e os valores de diversas variáveis ​​importantes do kernel do sistema. O cabeçalho tem menos de 1 MB, mas o sistema operacional pode aumentar (ou diminuir) o tamanho do arquivo de paginação em pelo menos 1 MB.

Após a inicialização do sistema, o Gerenciador de Sessão (Gerenciador de Sessão do Windows NT; endereço de disco \WINDOWS\system32\smss.exe) inicializa os arquivos de página do sistema, usando sua própria função NtCreatePagingFile para criar cada arquivo. NtCreatePagingFile determina se o arquivo de paginação que está sendo inicializado existe e, em caso afirmativo, se contém um cabeçalho de despejo. Se o cabeçalho estiver presente, NtCreatePagingFile envia um código especial ao Session Manager. O Gerenciador de Sessão inicia então o processo Winlogon (Programa de Logon do Windows NT; o endereço do disco é \WINDOWS\system32\winlogon.exe), que é notificado da existência do despejo de memória. O Winlogon executa o programa SaveDump (Programa de Backup de Memória do Windows NT; o endereço do disco é \WINDOWS\system32\savedump.exe), que analisa o cabeçalho do dump e determina o que fazer em caso de emergência.

Se o cabeçalho indicar a existência de um dump, então SaveDump copia os dados do arquivo de paginação para o arquivo de dump de memória cujo nome é especificado pelo parâmetro REG_EXPAND_SZ DumpFile da chave do Registro. Enquanto SaveDump está reescrevendo o arquivo de despejo, o sistema operacional não usa a parte do arquivo de paginação que contém o despejo de memória. Neste momento, a quantidade de memória virtual disponível para o sistema e aplicativos é reduzida pelo tamanho do dump (e podem aparecer mensagens na tela indicando pouca memória virtual). SaveDump então informa ao gerenciador de memória que o dump foi concluído e o gerenciador libera a parte do arquivo de paginação que contém o dump para uso público.

Após salvar o arquivo de despejo, o programa SaveDump registra a criação do despejo de memória no log de eventos do sistema, por exemplo: "O computador foi reiniciado após um erro crítico: 0x100000d1 (0xc84d90a6, 0x00000010, 0x00000000, 0xc84d90a6). Cópia de memória salva: C:\WINDOWS\Minidump\Mini060309-01.dmp".

Se a opção Enviar notificação administrativa estiver habilitada, SaveDump enviará uma notificação ao administrador.

Tipos de lixões

  • Despejo de memória completo grava todo o conteúdo da memória do sistema quando ocorre um erro fatal. Esta opção requer um arquivo de troca no volume de inicialização que seja igual à quantidade de RAM física mais 1 MB. Por padrão, um despejo de memória completo é gravado no arquivo %SystemRoot%\Memory.dmp. Quando novo erro e criando um novo arquivo de dump completo (ou arquivo de dump do kernel), o arquivo anterior é substituído (sobrescrito). A opção Full Memory Dump não está disponível em PCs com sistema operacional de 32 bits e 2 GB ou mais de RAM.

Quando ocorre um novo erro e um novo arquivo de despejo de memória completo é criado, o arquivo anterior é substituído.

  • Despejo de memória do kernel grava apenas a memória do kernel, tornando mais rápido o processo de gravação de dados no log durante um desligamento repentino do sistema. Dependendo da quantidade de memória física do PC, neste caso, o arquivo de paginação requer entre 50 e 800 MB, ou um terço da memória física do computador no volume de inicialização. Por padrão, o despejo de memória do kernel é gravado no arquivo %SystemRoot%\Memory.dmp.

Esse dump não inclui memória não alocada ou memória alocada para programas em modo de usuário. Inclui apenas memória alocada para o kernel e camada dependente de hardware (HAL) no Windows 2000 e posterior, e memória alocada para drivers de modo kernel e outros programas de modo kernel. Na maioria dos casos, esse tipo de despejo é a opção preferida. Ele ocupa muito menos espaço do que um despejo de memória completo, excluindo apenas os setores de memória que provavelmente não estão relacionados ao erro.
Quando ocorre um novo erro e um novo arquivo de despejo do kernel é criado, o arquivo anterior é substituído.

  • Despejo de memória pequeno registra a menor quantidade de informações úteis necessárias para determinar a causa de um problema. Para gerar um pequeno despejo de memória, o tamanho do arquivo de troca deve ser de pelo menos 2 MB no volume de inicialização.

Pequenos arquivos de despejo de memória contêm as seguintes informações:

  • mensagem de erro fatal, seus parâmetros e outros dados;
  • lista de drivers carregados;
  • o contexto do processador (PRCB) que falhou;
  • informações do processo e contexto do kernel (EPROCESS) para o processo que causou o erro;
  • informações do processo e contexto do kernel (ETHREAD) para o thread que causou o erro;
  • a pilha de chamadas do modo kernel para o thread que causou o erro.

O pequeno arquivo de despejo de memória é usado quando o espaço no disco rígido é limitado. No entanto, devido às informações limitadas que ele contém, a análise desse arquivo nem sempre pode detectar erros que não foram causados ​​diretamente pelo thread que estava em execução no momento em que ocorreu o erro.

Se ocorrer o erro a seguir e um segundo arquivo de despejo de memória pequeno for gerado, o arquivo anterior será retido. Cada arquivo adicional recebe um nome exclusivo. A data está codificada no nome do arquivo. Por exemplo, Mini051509-01.dmp é o primeiro arquivo de despejo de memória criado em 15 de maio de 2009. Uma lista de todos os pequenos arquivos de despejo de memória é armazenada na pasta %SystemRoot%\Minidespejo.

O sistema operacional Windows XP é, sem dúvida, muito mais confiável do que as versões anteriores, graças aos esforços dos desenvolvedores da Microsoft, dos desenvolvedores de drivers de hardware e dos desenvolvedores de software de aplicativos. No entanto, emergências - todos os tipos de falhas e travamentos do sistema - são inevitáveis, e dependendo se o usuário do PC tem o conhecimento e as habilidades para eliminá-las, ele terá que gastar vários minutos para solucionar problemas (por exemplo, atualizar/depurar um driver ou reinstalar um programa aplicativo que causa uma falha no sistema), ou várias horas para reinstalar/configurar o sistema operacional e o software aplicativo (o que não garante a ausência de falhas e falhas no futuro!).

Muitos administradores de sistema ainda negligenciam a análise dos crash dumps do Windows, acreditando que trabalhar com eles é muito difícil. Difícil, mas possível: mesmo que, por exemplo, a análise de um dump em cada dez seja bem-sucedida, os esforços despendidos no domínio das técnicas mais simples de análise de crash dumps não serão em vão!..

Darei exemplos da minha prática de “administrador de sistemas”.

Na rede local sem motivo aparente (“hardware” está em ordem, a ausência de vírus é garantida, usuários - com “mãos normais”), várias estações de trabalho com Windows XP SP1/SP2 “on board” morreram. Os computadores não puderam inicializar no modo normal - chegou a "Saudações" - e reiniciar indefinidamente. Ao mesmo tempo, no Modo de Segurança, o PC foi inicializado.

O estudo dos despejos de memória permitiu identificar a causa do mau funcionamento: o culpado acabou sendo o antivírus Kaspersky, mais precisamente, novos bancos de dados de antivírus (mais precisamente, dois módulos de banco de dados - base372c.avc, base032c.avc).

…Houve outro caso assim. Em um PC local executando o Windows XP SP3, ao tentar abrir arquivos de vídeo .avi e .mpeg, ocorreu uma reinicialização. O estudo do despejo de memória permitiu identificar a causa do mau funcionamento - o arquivo nv4_disp.dll do driver da placa de vídeo NVIDIA GeForce 6600. Após a atualização do driver, o mau funcionamento foi corrigido. Em geral, o driver nv4_disp.dll é um dos drivers mais instáveis, o que muitas vezes leva ao BSOD.

Em ambos os casos, o estudo do crash dump permitiu minimizar (vários minutos!) O tempo de diagnóstico e solução de problemas.

Análise de despejo de memória

Existem muitos programas para analisar despejos de memória, por exemplo, DumpChk, Kanalyze, WinDbg.

Vamos considerar a análise de despejos de memória usando o programa WinDbg (incluído nas Ferramentas de Depuração para Windows).

Instalando ferramentas de depuração

  • visite o site da Microsoft http://www.microsoft.com/whdc/devtools/debugging/default.mspx;
  • baixe as ferramentas de depuração para Windows, por exemplo, para a versão de 32 bits do Windows, isso pode ser feito na página Baixe as ferramentas de depuração para Windows;
  • após o download, execute o arquivo de instalação;
  • na janela do Assistente de Configuração das Ferramentas de Depuração do Windows, clique em Avançar;
  • na janela com o contrato de licença, defina a opção Concordo –> Próximo;
  • na próxima janela, selecione o tipo de instalação (por padrão, as ferramentas de depuração são instaladas na pasta \Program Files\Debugging Tools for Windows) –> Próximo –> Instalar –> Concluir;
  • para interpretar arquivos de despejo de memória, você também deve baixar o pacote de símbolos (pacotes de símbolos, os chamados arquivos de símbolos ou arquivos de símbolos de depuração) para sua versão do Windows - vá para a página Baixar pacotes de símbolos do Windows;
  • escolha o seu Versão do Windows, baixe e execute o arquivo de instalação dos Pacotes de Símbolos;
  • na janela com o contrato de licença, clique em Sim;
  • na janela seguinte, selecione a pasta de instalação (o padrão é \WINDOWS\Symbols) –> OK –> Sim;
  • na janela Símbolos do Microsoft Windows com a mensagem "Instalação concluída", clique em OK.

Usando WinDbg para analisar Crash Dumps

  • execute o WinDbg (por padrão ele é instalado na pasta \Program Files\Debugging Tools for Windows);
  • selecione o menu Arquivo –> Caminho do arquivo de símbolos…;
  • na janela Caminho de pesquisa de símbolos, clique no botão Procurar…;
  • na janela Procurar pastas, especifique a localização da pasta Símbolos (por padrão - \WINDOWS\Symbols) –> OK –> OK;
  • selecione o menu Arquivo -> Abrir Crash Dump… (ou pressione Ctrl + D);
  • na janela Abrir Crash Dump, especifique o local do arquivo Crash Dump (*.dmp) –> Abrir;
  • na janela Workspace com a pergunta “Salvar informações para o workspace?”, Marque a caixa Não perguntar novamente -> Não;
  • uma janela Command Dump será aberta na janela WinDbg<путь_и_имя_файла_дампа>com análise de despejo;
  • revise a análise de despejo de memória;
  • na seção "Análise de verificação de bugs" será indicado razao possivel travamento, por exemplo, "Provavelmente causado por: smwdm.sys (smwdm+454d5)";
  • para visualizar informações detalhadas, clique no link "!analyze -v" na linha "Use !analyze -v para obter informações detalhadas de depuração";
  • feche o WinDbg;
  • use as informações recebidas para eliminar a causa do mau funcionamento.

Por exemplo, na captura de tela a seguir, a causa do mau funcionamento é o arquivo nv4_disp.dll do driver da placa de vídeo.

Postagens semelhantes