Como determinar o que está fazendo com que o Chrome mostre o diálogo "Aw, Snap"

31

Alguém sabe se existe uma maneira prática de determinar a causa do "Aw Snap!" mensagem que aparece ocasionalmente no Google Chrome? O Chrome tem um log de erros ao qual posso me referir? Suspeito que esse problema seja causado por um loop recursivo no código que está consumindo toda a memória? Existe alguma maneira de confirmar isso?

QFDev
fonte

Respostas:

28

Veja as explicações aqui: para log comum no Chrome, você pode tentar:

vinnief
fonte
1
Eu acho que a primeira opção ajudará a isolar esse problema. O console de desenvolvimento trava antes de produzir qualquer coisa útil.
QFDev
2
Ativei o log e, após a falha do chrome, ele não registrou nenhum erro no momento da falha. Existe alguma referência que possa fornecer informações sobre os itens de log?
Khadim Ali
Esta página do chromium sobre logging.h é o que você deseja?
vinnief
Você poderia incluir o conteúdo abreviado dos links nesta resposta. Ele ficará obsoleto se os links morrerem.
Mafu
3
O console Javascript geralmente não é útil nesse caso, pois as ferramentas de desenvolvimento são desconectadas quando a página trava.
PawnStar
28

A conta oficial do Twitter para desenvolvedores do Chrome vinculada a um site que ajuda você a depurar as páginas "Aw snap": http://www.chromium.org/for-testers/enable-logging

A recomendação é iniciar o Chrome com estes sinalizadores:

--enable-logging --v=1

Se você fizer isso, poderá pegar um log de falha do arquivo chrome_debug.logno diretório de dados do usuário do Chrome (no diretório pai de Default/) ou na pasta de compilação binária ( out\Debug) se estiver usando uma compilação de depuração.

Benny Neugebauer
fonte
5
upvote porque este post mencionado --enable-logging --v=1 muito antes da edição da resposta aceita foi adicionada.
CAD bloke
2

O Aw, pressão! A página geralmente está relacionada à falha de falha na segmentação do processo , que pode estar relacionada ao bug do software . Para determinar a causa, você pode ativar o log (como sugerido em outras respostas) ou analisar o backtrace do arquivo de despejo principal (no macOS , Linux , por exemplo, Ubuntu ).

Se você não souber a causa (por exemplo, o rastreamento de pilha consiste apenas em endereços de memória), é possível criar um novo tíquete de suporte no sistema de rastreamento de bugs do Chrome (ou verificar novamente se já existe um). Durante os relatórios, você deve carregar e incluir o ID de falha acessando a chrome://crashes/página, para que os endereços de memória possam ser traduzidos em símbolos de depuração pelos mantenedores do Chrome.

Como alternativa, você pode decodificar os despejos de memória.

Veja também: Onde está localizado o Crash Dump do Google Chrome?


Para simplificar acima, aqui estão os principais motivos pelos quais a página pode falhar:

  • Você encontrou o erro (no site ou no próprio navegador da web).

    • Bug do site

      • Exemplo: a VM JavaScript atingiu a memória máxima alocada (falha de falta de memória).

        Para verificar isso, execute o DevTools e verifique a guia Memória . Se for esse o caso, o código deve pausar automaticamente imediatamente antes da possível falha de falta de memória (por exemplo, edição 810015 ). Nesse caso, relate o problema ao proprietário do site ou crie um perfil do código JS para encontrar o bug.

    • Bug do navegador

      • Considere desativar extensões ou executar no modo de navegação anônima .
      • Considere remover arquivos em cache .
      • Relatar um bug .
      • Reinstale o navegador.
      • Use uma versão diferente do Chrome, como canal Chromium , Dev ou Canary .
      • Use um navegador diferente, como Epic, Firefox, Opera, Brave, Waterfox, Torch ou outro.
      • Se o problema for repetitivo, você pode tentar recompilar as fontes do Chrome com símbolos de depuração e analisar o rastreamento da pilha ou relatá-lo.
  • Você atingiu o máximo de arquivos abertos no seu sistema (consulte: # 787381 ).

    No Linux / Unix / macOS, para verificar isso, execute:

    sysctl -a | grep files
    

    e verifique se kern.num_filesatingiu o limite de kern.maxfiles.

    Se for esse o caso, aumente o limite executando os seguintes comandos:

    sysctl -w kern.maxfiles=20480
    which launchctl && launchctl limit maxfiles 65536 unlimited
    which ulimit && ulimit -c unlimited
    
  • Você pode ter algum malware / vírus que altera os arquivos do Chrome causando a falha.

  • Você pode ter algum problema relacionado à memória de hardware . Portanto, execute alguns testes (como memtest).

Mac OS

Para exibir logs do Chrome, execute:

log stream --level debug --predicate 'processImagePath contains "Google"'

ou executando o aplicativo Console , onde você também pode verificar se há despejos de memória (ou fazer check-in ~/Library/Logs/DiagnosticReports). Consulte: Depure o erro "Aw, Snap!" No Chrome


Depuração

Se nenhuma das opções acima ajudar, considere compilar o Chrome a partir da fonte (leva muito tempo) e execute diretamente a partir do Terminal. Depois disso, cada erro "Aw, Snap!" Deve ser seguido pelo rastreamento completo da pilha, incluindo funções e linhas no arquivo de código-fonte onde ocorreu.

kenorb
fonte