Compartilhar via


Despejo de memória ao vivo do Gerenciador de Tarefas

Visão geral

Use o Gerenciador de Tarefas para criar um despejo de memória de kernel dinâmico. Esse recurso complementa a funcionalidade existente do Gerenciador de Tarefas para criar um despejo de memória para um processo específico.

Um despejo de memória de kernel ao vivo contém um instantâneo consistente da memória do kernel e, opcionalmente, outros tipos de memória. Ele salva este instantâneo em um arquivo de despejo. Ao contrário de outros métodos para gerar manualmente um despejo de memória de kernel, esse método não causa uma falha no sistema.

Programadores com acesso aos arquivos de símbolo apropriados e ao código-fonte podem analisar o arquivo de despejo para examinar o estado do sistema e diagnosticar problemas.

Você pode criar um despejo de memória de kernel em tempo real do processo System. Esse processo é semelhante a como você pode criar um arquivo de despejo de memória para processos de modo de usuário.

Um despejo de memória de kernel dinâmico completo contém memória de kernel ativa, com inclusão opcional de memória do hipervisor e memória do modo de usuário. As opções para capturar páginas do hipervisor e do usuário estão disponíveis para despejos completos de kernel ativo. Como alternativa, um despejo de memória de pilhas do Kernel é um arquivo menor, limitado aos estados do processador do kernel e a todas as pilhas de threads do kernel.

Para obter informações gerais sobre despejos de memória de kernel ao vivo, consulte Referência de código de despejo de memória ao vivo do Kernel.

O recurso de despejo ao vivo do Gerenciador de Tarefas foi lançado no início de 2023. Ele foi disponibilizado pela primeira vez em builds do Windows Insider Preview no Canary Channel (Build 25276 e superior) e Canal de Desenvolvimento (Build 23419 e superior). Em julho de 2023, ele ficou disponível no build do sistema operacional Windows 22621.1992 e posterior.

Criar um despejo de memória de kernel dinâmico do sistema usando o Gerenciador de Tarefas

Para capturar um despejo de memória de kernel dinâmico usando o Gerenciador de Tarefas, conclua as etapas a seguir.

  1. Inicie o Gerenciador de Tarefas do Windows.

  2. Vá para Processos ou Detalhes.

  3. Localize o processo System.

  4. Clique com o botão direito do mouse no processo e selecione Criar arquivo de despejo de memória de kernel dinâmico.

  5. No menu suspenso, selecione um despejo de memória de kernel dinâmico completo ou um despejo de memória do Kernel Stacks.

Captura de tela do Gerenciador de Tarefas mostrando o processo do sistema com um menu de contexto exibindo opções de despejo de memória de kernel dinâmico completo e opções de despejo de memória do Kernel Stacks.

Gerar um despejo de memória de um processo em modo de usuário

Use um procedimento semelhante no Gerenciador de Tarefas para criar um despejo de memória de um processo. Realce o processo de modo de usuário desejado, clique com o botão direito do mouse e selecione Criar arquivo de despejo de memória. Para obter mais informações sobre arquivos de despejo no modo de usuário, consulte User-Mode Arquivos de Despejo.

Opções avançadas do arquivo de despejo de memória do kernel dinâmico

Você pode encontrar as opções para o arquivo de despejo de memória do kernel em estado ativo nas configurações do Gerenciador de Tarefas.

Captura de tela das configurações do Gerenciador de Tarefas mostrando opções avançadas de despejo de memória do kernel dinâmico, incluindo páginas de memória do Hipervisor de Captura e caixas de seleção Capturar Páginas do Usuário.

O botão superior reverte as configurações de despejo de memória do kernel dinâmico para seus padrões.

Quando você seleciona a opção abortar se houver pressão de memória, o processo de registro ao vivo é interrompido se a disponibilidade de memória não for suficiente. Essa configuração padrão minimiza o impacto potencial da captura do despejo do kernel ao vivo na capacidade de resposta do sistema.

As configurações do arquivo de despejo de memória dinâmica do Kernel fornecem várias opções para quais informações incluir no despejo de memória.

  • Capturar páginas de memória do Hipervisor (com ou sem páginas não essenciais)
  • Capturar páginas do usuário

Adicionar informações extras ao arquivo de despejo aumenta seu tamanho e usa mais memória à medida que o despejo de memória está sendo registrado.

Capturar páginas de memória do Hipervisor

Selecione a opção Capturar páginas de memória do Hipervisor para capturar regiões de memória que o hipervisor usa para dar suporte a Hyper-V e máquinas virtuais. Para obter mais informações, consulte Hyper-V no Windows.

Você pode optar por incluir ou não incluir páginas de memória de hipervisor não essenciais.

Capturar páginas de usuário

Habilite a captura de páginas de usuário se o problema que você está solucionando exigir memória do modo de usuário.

Para obter informações gerais sobre o uso de página e memória do Windows, consulte Os Internos do Windows por Pavel Yosifovich, Alex Ionescu, Mark Russinovich e David Solomon.

Local do arquivo de despejo de memória ao vivo

Quando o despejo de memória for concluído, será exibida uma caixa de diálogo que fornece o local do arquivo de despejo .dmp de memória. Selecione Abrir Local do Arquivo para abrir a pasta.

Despejos de memória ativos do kernel

Por padrão, os despejos de memória do kernel dinâmico são armazenados no seguinte local:

%LocalAppData%\Microsoft\Windows\TaskManager\LiveKernelDumps

%LocalAppData% normalmente C:\Users\<YourUserName>\AppData\Local\

Despejos de memória do modo de usuário em tempo real

Os arquivos de despejo de memória do modo de usuário dinâmico são armazenados no %localappdata%\Temp diretório, que normalmente está localizado no diretório Usuários.

C:\Users\<YourUserName>\AppData\Local\Temp

Solução de problemas ao fazer um despejo de memória ao vivo

Se o despejo de memória ao vivo retornar um erro, verifique a mensagem de erro para obter detalhes. Por exemplo:

  • O Gerenciador de Tarefas precisa ser executado como um usuário de nível de administrador.

  • Com problemas de tempo limite, tente fazer o despejo novamente em alguns minutos.

  • Aguarde até que qualquer despejo solicitado seja concluído antes de fazer despejos de memória adicionais.

  • É possível que a criação do despejo de memória do kernel ativo seja bem-sucedida, mas não contenha todo o conteúdo da memória completa. A captura temporariamente requer memória física livre suficiente disponível para armazenar uma cópia da memória que vai ser gravada no arquivo de despejo. Fechar aplicativos desnecessários ou desabilitar a captura de Hyper-V e páginas de memória no modo de usuário pode aumentar a quantidade de memória que pode ser salva no arquivo de despejo.

Analisando arquivos de despejo de memória ativa

Quando ocorre um despejo de memória ao vivo, você pode analisar o arquivo de despejo usando as mesmas técnicas usadas para outros arquivos de despejo de memória. Para entender o conteúdo da memória durante uma falha, você normalmente precisa de conhecimento dos registros de memória do processador e da programação do assembly. Além disso, o acesso ao código-fonte com falha permite que o desenvolvedor corrija o problema.

Para obter mais informações, consulte:

Código de verificação de bugs: 0x161 – LIVE_SYSTEM_DUMP

O código de verificação de bug para um despejo de memória ao vivo do Gerenciador de Tarefas é Verificação de Bug 0x161: LIVE_SYSTEM_DUMP.

Consulte também