Arquivos CAB que contêm arquivos de paginação junto com um despejo de memória

Um arquivo de despejo de memória pode ser colocado em um arquivo cab (gabinete) junto com arquivos de paginação. Quando um depurador do Windows analisa o arquivo de despejo de memória, ele pode usar os arquivos de paginação para apresentar uma memória de exibição completa, incluindo a memória que foi paginada quando o arquivo de despejo foi criado.

Suponha que um arquivo CAB chamado MyCab.cab contenha estes arquivos:

Memory.dmp Cabmanifest.xml Pagefile.sys Suponha também que Cabmanifest.xml tenha esta aparência:

<?xml version="1.0" encoding="UTF-8"?>
<WatsonPageFileManifest>
  <Pagefiles>
    <Pagefile Name="pagefile.sys"></Pagefile>
  </Pagefiles>
</WatsonPageFileManifest>

Você pode abrir o arquivo CAB inserindo um destes comandos:

  • windbg /z MyCab.cab
  • kd /z MyCab.cab

O depurador lê Cabmanifest.xml para obter uma lista de arquivos de paginação que devem ser incluídos na sessão de depuração. Neste exemplo, há apenas um arquivo de paginação. O depurador converte o arquivo de paginação em um arquivo TIF (Arquivo de Informações de Destino) que ele pode usar durante a sessão de depuração. Como o depurador tem acesso ao TIF, ele pode exibir a memória que foi paginada no momento em que o arquivo de despejo foi criado.

Independentemente de quantos arquivos de paginação estão no arquivo CAB, o depurador usa apenas os arquivos de paginação listados no Cabmanifest.xml. Aqui está um exemplo de um arquivo de manifesto CAB que lista três arquivos de paginação.

<?xml version="1.0" encoding="UTF-8"?>
<WatsonPageFileManifest>
  <Pagefiles>
    <Pagefile Name="pagefile1.sys"></Pagefile>
    <Pagefile Name="pagefile2.sys"></Pagefile>
    <Pagefile Name="swapfile.sys"></Pagefile>
  </Pagefiles>
</WatsonPageFileManifest>

Em Cabmanifest.xml, os arquivos de paginação devem ser listados na mesma ordem em que o Windows os usa. Ou seja, eles devem ser listados na ordem em que aparecem no Registro.

O arquivo de despejo de memória que você colocou no arquivo CAB deve ser um despejo de memória completo. Você pode usar Painel de Controle para configurar o Windows para criar um despejo de memória completo quando houver uma falha. Por exemplo, em Windows 8 você pode ir para Painel de Controle > Sistema e Segurança > Sistema Configurações Avançadas > do Sistema > Inicialização e Recuperação. Como alternativa ao uso de Painel de Controle, você pode definir o valor dessa entrada do Registro como 1.

HKLM\SISTEMA\Currentcontrolset\Controle\CrashControl\CrashDumpEnabled

Começando no Windows 8.1, você pode configurar o Windows para preservar o conteúdo dos arquivos de paginação quando o Windows for reiniciado.

Para especificar que você deseja que os arquivos de paginação sejam salvos quando o Windows for reiniciado, defina o valor dessa entrada do Registro como 1.

HKLM\SISTEMA\Currentcontrolset\Controle\CrashControl\SavePageFileContents