Onde o Windows 8 armazena minidumps de falha no modo de usuário?

18

Onde o Windows 8 armazena minidumps de falhas no modo de usuário?


O Windows Vista e o Windows 7 estão documentados para (por padrão) armazenar um despejo de memória em :

%LOCALAPPDATA%\CrashDumps

Um fato apoiado por evidências observacionais:

insira a descrição da imagem aqui

Mas, quando um aplicativo falha no Windows 8:

insira a descrição da imagem aqui

Não há despejos de memória %LOCALAPPDATA%\CrashDumps; não há nem uma CrashDumpspasta:

insira a descrição da imagem aqui

O que leva à pergunta:

Onde o Windows 8 armazena minidumps de falhas no modo de usuário?

Nota: Você pode ignorar tudo após a primeira linha; é apenas desperdício de carga.


insira a descrição da imagem aqui

Ian Boyd
fonte
Eu fiz um dir *.dmp /s, dir *.mdmp /sna pasta Windows e na raiz da minha pasta de perfil de usuário.
22813 Ian Boyd
Certificou-se de que você não tem os despejos de memória específicos do aplicativo ativados? Não tive problemas para encontrá-los no meu sistema. Claro que também verifiquei que o recurso foi ativado no meu sistema.
Ramhound 16/02
Onde você os encontrou no seu sistema? (verifiquei dois locais) Quais configurações de despejos de memória do WER você ativou? (eu verifiquei 3 configurações)
Ian Boyd
Você verificou o log de eventos? Normalmente, você encontrará o caminho para os lixões lá. O Windows do IIRC os agrupa (.dmp + .xml) em um arquivo ZIP, para que também possa ter um nome diferente. Tente Win+Re, em seguida, eventvwre ENTERpara verificar o log de eventos.
0xC0000022L 17/02
11
@ IanBoyd: depende das configurações do sistema e ainda não estou muito familiarizado com o W8. Sugiro que você tente encontrar esse arquivo na próxima vez enquanto a caixa de diálogo WER ainda estiver aberta.
0xC0000022L 17/02

Respostas:

6

Observei o seguinte no Windows 8.1 Professional:

O Relatório de Erros do Windows grava em: %ProgramData%\Microsoft\Windows\WER\

No entanto, por padrão, ele não armazena mais permanentemente os despejos no computador local. Você precisa habilitar explicitamente o armazenamento dos despejos.

Use o Editor de Diretiva de Grupo ( gpedit.msc): Computer Configuration -> Administrative Templates -> Windows Components -> Windows Error Reporting -> Advanced Error Reporting Settings

  1. Habilite a política Configure Report Archive:

    • Comportamento de arquivamento = Armazenar tudo
    • Número máximo = 100
  2. Você também pode habilitar a política Do not throttle additional datapara enviar e armazenar despejos para falhas consecutivas com assinatura semelhante.

Os dumps estão dentro do arquivo Report.cabda subpasta específica do travamento.

paulgutten
fonte
4

Parece ser muito simples:

Na minha máquina Windows 8.1, não havia% LOCALAPPDATA% \ CrashDumps e nenhum dump foi gerado. Eu criei o seguinte valor no registro:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
DumpFolder=REG_EXPAND_SZ:"C:\Dumps"

(a sintaxe acima não é adequada para arquivos .reg, mas deve ficar claro o que é)

e da próxima vez que tive um travamento do meu programa, o dump foi gerado C:\Dumps.

Eu espero que isso ajude.

Sergei
fonte
2

Você pode procurar por arquivos .dmp no seu computador. Mas se você não encontrar nenhum, continue lendo.

Para aplicativos da Store, o Windows 8 parece coletar os despejos de aplicativos nos servidores da Microsoft, onde sua vida útil é desconhecida (minha suspeita: 30 dias e eu peguei esse número daqui ).

Para detalhes, consulte o artigo Melhorando aplicativos com relatórios de qualidade .

Em resumo: você acessa os relatórios de qualidade na "página de resumo do aplicativo" do seu aplicativo. Esta página fornece um link de Download para um arquivo .cab que contém o dump do processo (!).

Eu não tenho o Windows 8, e minha resposta acima parece pura loucura da parte da Microsoft, mas esse fato inacreditável é o que li na documentação. Eu só espero que eu esteja errado.

harrymc
fonte
A situação é ainda mais kafkaien do que eu poderia imaginar. Voltar ao Windows 7 é uma opção? Caso contrário, você não tem escolha a não ser comprar uma licença da Verisign ou desistir de despejos de memória de aplicativos.
24513 harrymc
Essa é uma grande violação de segurança para aplicativos que lidam com informações confidenciais, como senhas e chaves privadas. Não há absolutamente nenhuma razão para enviar lixeiras com informações confidenciais a empresas como a Microsoft. As informações confidenciais nunca devem sair do limite de segurança, como o aplicativo ou a máquina local. Os policiais e os criminosos agradecem à Microsoft por facilitar a coleta de informações secretas.
jww 15/03
0

Você pode substituir o local em que os arquivos estão armazenados . execute regedit.exee vá para HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps, crie um REG_EXPAND_SZcom o nome da pasta que você deseja usar (como C: \ dumps).

magicandre1981
fonte
Isso não é necessário, pois o DumpFolder tem o valor padrão de %LOCALAPPDATA%\CrashDumps. Mas evidentemente isso não tem efeito para o cartaz no Windows 8.
harrymc
da minha experiência, substituir a pasta garante que os dumps sejam gravados, o que não é o caso da configuração padrão.
Magicandre1981
Tudo é possível com o Windows 8 ... Espero que o pôster possa dar aqui algum feedback.
24913 harrymc
@harrymc A chave do registro existe; a captura de tela na pergunta original mostra o mini dumps.
22813 Ian Boyd
11
novamente, altere o valor para algo como C: \ dumps. Isso funciona para mim desde que o recurso foi adicionado no Vista Sp1.
magicandre1981