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?
30
Réponses:
Il y en a, voir les explications ici: pour la journalisation ordinaire dans Chrome, vous pouvez essayer:
Utilisez la fonctionnalité de journalisation de Chrome :
Pour activer la journalisation, lancez Chrome avec les indicateurs de ligne de commande suivants:
--enable-logging --v=1
La sortie sera enregistrée dans le fichier
chrome_debug.log
dans le répertoire de données utilisateur de Chrome .L'emplacement du fichier journal peut être remplacé par
CHROME_LOG_FILE
une variable d'environnement.Pour obtenir la liste complète des indicateurs, vérifiez: Les commutateurs de ligne de commande Google Chrome .
Ou utilisez la console javascript :
Appuyez sur Ctrl+ Shift+ J(Windows / Linux) ou sur Cmd+ Option+ J(Mac).
la source
Le compte Twitter officiel de Chrome Developers est lié à un site Web vous permettant 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 à partir du fichier situé
chrome_debug.log
dans le répertoire de données de l'utilisateur de Chrome (dans le répertoire parent deDefault/
) ou dans le dossier de construction binaire (out\Debug
) si vous utilisez une version de débogage.la source
--enable-logging --v=1
bien avant l'édition à la réponse acceptée l'a ajouté.Le Aw, Snap! Cette page est généralement liée à un crash de segmentation de processus qui pourrait être lié au bogue du logiciel . Pour déterminer la cause, vous pouvez activer la journalisation (comme suggéré dans d'autres réponses) ou analyser la trace de trace du fichier de vidage principal (sous MacOS , Linux , par exemple Ubuntu ).
Si vous ne connaissez pas la cause (par exemple, la trace de pile ne contient que des adresses de mémoire), vous pouvez créer un nouveau ticket de support dans le système de suivi des bogues de 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
chrome://crashes/
page, afin que les adresses de mémoire puissent être traduites en symboles de débogage par les responsables de Chrome.Sinon, vous pouvez décoder vous-même les vidages sur incident.
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 bogue (sur le site Web ou avec le navigateur Web lui-même).
Bug du site
Exemple: la machine virtuelle JavaScript a atteint la mémoire maximale allouée (panne de mémoire insuffisante).
Pour vérifier cela, lancez DevTools et vérifiez l’ onglet Mémoire . Si tel est le cas, le code devrait automatiquement s'interrompre juste avant le blocage imminent de mémoire insuffisante (par exemple, le problème 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
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:
et vérifier si
kern.num_files
atteint la limite dekern.maxfiles
.Si c'est le cas, augmentez la limite en exécutant les commandes suivantes:
Vous pourriez avoir un malware / virus qui altère vos fichiers Chrome provoquant le crash.
memtest
).macOS
Pour afficher les journaux de Chrome, exécutez:
ou en exécutant l' application Console , où vous pouvez également rechercher d'éventuels vidages sur incident (ou archivage
~/Library/Logs/DiagnosticReports
). Voir: Erreur de débogage «Aw, Snap!» Dans ChromeDébogage
Si rien de ce qui précède ne vous aide, vous pouvez envisager de compiler Chrome à partir de la source (prend beaucoup de temps), puis de l'exécuter 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 dans le fichier de code source où elle s’est produite.
la source