43 votes

Comment déterminer ce qui cause Chrome à afficher le dialogue "Aw, Snap" ?

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

35voto

blinry Points 1071

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

La recommandation est de lancer Chrome avec ces flags :

--enable-logging --v=1

Si vous le faites, vous pourrez récupérer un journal de plantage à partir du fichier chrome_debug.log dans le répertoire des 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 version de débogage.

31voto

Jaapjan Points 1982

Il y a des explications ici : pour se connecter normalement sur Chrome, vous pourriez essayer :

3voto

kenorb Points 22006

La page Aw, Snap! est généralement liée au processus de crash de segmentation qui pourrait être lié à un bug logiciel. Pour déterminer la cause, vous pouvez activer le journal (comme suggéré dans d'autres réponses) ou analyser le backtrace du fichier core dump (sur macOS, Linux, par exemple Ubuntu).

Si vous ne connaissez pas la cause (par exemple, la pile d'exécution ne contient que des adresses mémoire), vous pouvez créer un nouveau ticket de support sur le système de suivi des bugs de Chrome (ou vérifier s'il en existe déjà un). Lors du signalement, vous devriez télécharger et inclure l'identifiant de crash en accédant à la page chrome://crashes/, de sorte que les adresses mémoire puissent être traduites en symboles de débogage par les mainteneurs de Chrome.

Alternativement, vous pouvez décoder les crash dumps vous-même.

Voir aussi : Où se trouve le fichier de dump de crash de Google Chrome ?


Pour simplifier ce qui précède, voici les principales raisons pour lesquelles la page peut planter :

  • Vous avez trouvé le bug (soit sur le site web, soit avec le navigateur web lui-même).

    • Bug du site web

      • Exemple : Le VM JavaScript a atteint la mémoire allouée maximale (plantage par manque de mémoire).

        Pour vérifier cela, exécutez DevTools et consultez l'onglet Memory. Si c'est le cas, le code devrait automatiquement se mettre en pause juste avant le potentiel plantage par manque de mémoire (par exemple, Problème 810015). Si tel est le cas, signalez le problème au propriétaire du site web, ou profilez le code JS pour trouver le bug.

    • Bug du navigateur

      • Envisagez de désactiver les extensions ou de les exécuter en mode Incognito.
      • Envisagez de supprimer les fichiers mis en cache.
      • Signaler un bug.
      • Réinstaller le navigateur.
      • Utiliser une version différente de Chrome telle que Chromium, Dev ou le canal Canary.
      • Utiliser un autre navigateur comme Epic, Firefox, Opera, Brave, Waterfox, Torch ou autre.
      • Si le problème est reproductible, vous pouvez essayer de recompiler les sources de Chrome avec les symboles de débogage et analyser la pile d'exécution ou le signaler.
  • Vous avez atteint le nombre maximum de fichiers ouverts dans votre système (voir : #787381).

    Sous 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 logiciel malveillant/virus qui altère vos fichiers Chrome et provoque le crash.

  • Vous pourriez avoir un problème matériel lié à la mémoire. Effectuez donc des tests (comme memtest).


macOS

Pour afficher les journaux de Chrome, exécutez :

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

ou en exécutant l'application Console, où vous pouvez également vérifier s'il y a des fichiers de dump de crash (ou vérifiez dans ~/Library/Logs/DiagnosticReports). Voir : Déboguer l'erreur "Aw, Snap!" dans Chrome


Débogage

Si rien de ce qui précède n'aide, vous pouvez envisager de compiler Chrome à partir des sources (cela prend du temps), puis l'exécuter directement depuis le Terminal. Ensuite, chaque erreur "Aw, Snap!" devrait être suivie de la stack trace complète incluant les fonctions et lignes dans le fichier source où elle s'est produite.

1voto

Joris Ceelen Points 11

Sur un Android où je n'avais pas l'option du drapeau de journalisation au démarrage, j'ai trouvé utile d'enregistrer un profil de performance dans les outils de développement.

Il m'a montré le dernier appel de fonction JavaScript effectué avant le Aw Snap.

Il s'est avéré que document.innerHtml a lancé une erreur d'allocation de chaîne non capturée de quelque sorte sur une grande div...

0voto

Je suis un développeur web et j'ai hâte que tous mes clients mettent à jour Google Chrome, alors.. Nous avons débogué ce problème et trouvé une solution!

Semble être un problème CSS simple à corriger. Il semble que dans certaines mises à jour de Chrome, ils ont interdit à certains balises HTML d'avoir du contenu AVANT et APRÈS. L'une de ces balises est Fieldset. Notre équipe n'en a trouvé aucune autre, mais en supprimant un fieldset:before{ content: '';... } résout le problème immédiatement!

Si vous trouvez d'autres BALISES, veuillez les poster ici. Si vous rencontrez le même problème, recherchez votre code CSS pour les déclarations :before et :after, cela devrait être facile à corriger.

Récemment ajouté ici: https://stackoverflow.com/questions/69161461/google-chrome-status-access-violation-error/69161462#69161462

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X