web-dev-qa-db-fra.com

Comment déterminer ce qui fait que Chrome affiche le dialogue "Aw, Snap"

Est-ce que quelqu'un sait s'il existe un moyen pratique de déterminer la cause du "Aw Snap!" message qui apparaît parfois sur Google Chrome? Chrome a-t-il un journal d'erreur auquel je peux me référer? Je soupçonne que ce problème est dû à une boucle récursive dans le code qui engloutit alors toute la mémoire? Y at-il un moyen que je peux confirmer cela?

27
QFDev

Il y en a, voir les explications ici: pour la journalisation ordinaire dans Chrome, vous pouvez essayer:

25
vinnief

Le compte Twitter officiel des développeurs Chrome est lié à un site Web qui vous permet de déboguer les pages "Aw snap": http : //www.chromium.org/for-testers/enable-logging

La recommandation est de lancer Chrome avec ces drapeaux:

--enable-logging --v=1

Dans ce cas, vous pouvez récupérer un journal des incidents dans le fichier chrome_debug.log du répertoire de données utilisateur de Chrome (dans le répertoire parent de Default/) ou dans le dossier de construction binaire (out\Debug) si vous utilisez une génération de débogage.

25
Benny Neugebauer

La page Aw, Snap! est généralement liée au processus erreur de segmentation crash qui pourrait être liée au bogue software . Pour déterminer la cause, vous pouvez activer la journalisation (comme suggéré dans d'autres réponses) ou analyser la trace du fichier de vidage principal (sur macOS , Linux , par exemple Ubuntu ).

Si vous ne connaissez pas la cause (par exemple, la trace de pile contient uniquement des adresses de mémoire), vous pouvez créer un nouveau ticket de support dans le système de suivi des bogues Chrome (ou vérifier s'il en existe déjà un. ). Lors de la création de rapports, vous devez télécharger et inclure l'ID d'incident en accédant à la page chrome://crashes/, afin que les adresses de mémoire puissent être traduites en symboles de débogage par les responsables de Chrome.

Sinon, vous pouvez decode crash dumps vous-même.

Voir aussi: Où se trouve Google Chrome Crash Dump?


Pour simplifier ci-dessus, voici les principales raisons pour lesquelles la page peut se bloquer:

  • Vous avez trouvé le bug (sur le site Web ou avec le navigateur Web lui-même).

    • Bug du site

      • Exemple: JavaScript VM a atteint le maximum de mémoire allouée (crash de mémoire insuffisante).

        Pour vérifier cela, exécutez DevTools et vérifiez l'onglet Mémoire . Si tel est le cas, le code devrait automatiquement se mettre en pause juste avant le crash potentiel de mémoire insuffisante (par exemple, Issue 810015 ). Si tel est le cas, signalez le problème au propriétaire du site Web ou profilez le code JS pour rechercher le bogue.

    • Bug du navigateur

      • Envisagez de désactiver les extensions ou exécutez-le en mode Incognito .
      • Envisagez de supprimer les fichiers en cache .
      • Rapporter un bug .
      • Réinstallez le navigateur.
      • Utilisez une version différente de Chrome telle que Chromium , Dev ou Canary channel.
      • Utilisez différents navigateurs tels que Epic, Firefox, Opera, Brave, Waterfox, Torch ou autre.
      • Si issue est répétable, vous pouvez essayer de recompiler Chrome Sources avec les symboles de débogage et analyser le tracé de la pile ou le signaler.
  • Vous avez atteint le nombre maximal de fichiers ouverts dans votre système (voir: # 787381 ).

    Sur Linux/Unix/macOS, pour vérifier cela, exécutez:

    sysctl -a | grep files
    

    et vérifiez si kern.num_files a atteint la limite de kern.maxfiles.

    Si c'est le cas, augmentez la limite en exécutant les commandes suivantes:

    sysctl -w kern.maxfiles=20480
    which launchctl && launchctl limit maxfiles 65536 unlimited
    which ulimit && ulimit -c unlimited
    
  • Vous pourriez avoir un malware/virus qui altère vos fichiers Chrome provoquant le crash.

  • Vous pourriez avoir un problème lié à la mémoire matérielle. Donc, lancez un test (comme memtest).

macOS

Pour afficher les journaux à partir de Chrome, exécutez:

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

ou en exécutant l'application Console , où vous pouvez également rechercher d'éventuelles sauvegardes sur incident (ou archiver ~/Library/Logs/DiagnosticReports). Voir: Déboguer l'erreur “Aw, Snap!” Dans Chrome


Débogage

Si rien de ce qui précède ne vous aide, vous pouvez envisager compiler Chrome à partir de la source (prend beaucoup de temps), puis le lancer directement à partir du terminal. Après cela, chaque erreur "Aw, Snap!" Devrait être suivie par la trace complète de la pile, y compris les fonctions et la ligne du fichier de code source où elle s’est produite.

2
kenorb