So ermitteln Sie, was Chrome veranlasst, den Dialog "Aw, Snap" anzuzeigen

31167
QFDev

Weiß jemand, ob es einen praktischen Weg gibt, die Ursache des "Aw Snap!" Nachricht, die gelegentlich in Google Chrome angezeigt wird? Hat Chrome ein Fehlerprotokoll, auf das ich mich beziehen kann? Ich vermute, dieses Problem wird durch eine rekursive Schleife im Code verursacht, die dann den gesamten Speicher verschluckt. Gibt es eine Möglichkeit, dies zu bestätigen?

26
Mögliches Duplikat von ["Aw, Snap!" Warum funktioniert Chrome nicht?] (https://superuser.com/questions/382671/aw-snap-why-doesnt-chrome-work) wizlog vor 6 Jahren 0
Verwandte Themen: [Wie erhalte ich weitere Informationen, wenn der Bildschirm "Aw Snap" in Chrome angezeigt wird?] (Https://stackoverflow.com/q/1728483/55075) kenorb vor 6 Jahren 0

3 Antworten auf die Frage

23
vinnief

Es gibt, siehe Erklärungen hier: Für die normale Protokollierung in Chrome könnten Sie Folgendes versuchen:

Ich denke, die erste Option wird helfen, dieses Problem zu isolieren. Die Dev-Konsole hängt, bevor sie irgendetwas ausgeben kann. QFDev vor 11 Jahren 1
Ich habe das Protokoll aktiviert und bei einem Chrome-Absturz wurden zum Zeitpunkt des Absturzes keine Fehler protokolliert. Gibt es eine Referenz, die Einblicke in die Protokolleinträge geben könnte? Khadim Ali vor 8 Jahren 1
Ist diese [Chromium-Seite über logging.h] (https://chromium.googlesource.com/chromium/src/+/master/base/logging.h) was Sie möchten? vinnief vor 8 Jahren 0
Bitte geben Sie in dieser Antwort den gekürzten Inhalt der Links an. Es wird veraltet, wenn die Links absterben. mafu vor 8 Jahren 0
Die Javascript-Konsole ist in diesem Fall normalerweise nicht hilfreich, da die Dev-Tools die Verbindung trennen, wenn die Seite abstürzt. PawnStar vor 7 Jahren 2
21
Benny Neugebauer

Der offizielle Chrome-Entwickler-Twitter-Account ist mit einer Website verlinkt, die Ihnen beim Debuggen der "Aw-Snap" -Seiten hilft: http://www.chromium.org/for-testers/enable-logging

Es wird empfohlen, Chrome mit den folgenden Flags zu starten:

--enable-logging --v=1

Wenn Sie dies tun, können Sie ein Absturzprotokoll aus der Datei chrome_debug.logim Benutzerdatenverzeichnis von Chrome (im übergeordneten Verzeichnis von Default/) oder im binären Build-Ordner ( out\Debug) abrufen, wenn Sie einen Debug-Build verwenden.

upvote, weil in diesem Beitrag "--enable-logging --v = 1" lange vor dem Bearbeiten der akzeptierten Antwort erwähnt wurde. CAD bloke vor 7 Jahren 2
1
kenorb

Die Aw, Snap! Diese Seite bezieht sich normalerweise auf einen Absturz der Prozess- Segmentierung, der möglicherweise mit dem Software-Fehler zusammenhängt . Um die Ursache zu ermitteln, können Sie die Protokollierung aktivieren (wie in anderen Antworten vorgeschlagen) oder die Rückverfolgung der Core-Dump-Datei (auf macOS, Linux, z . B. Ubuntu ) analysieren .

Wenn Sie die Ursache nicht kennen (z. B. besteht der Stack-Trace nur aus Speicheradressen), können Sie im Chrome-Bug-Tracking-System ein neues Support-Ticket erstellen (oder überprüfen Sie, ob bereits eines vorhanden ist). Während der Berichterstellung sollten Sie die Absturz-ID hochladen und einschließen, indem Sie zur chrome://crashes/Seite gehen, damit Speicheradressen von den Chrome-Betreuern in Debug-Symbole umgewandelt werden können.

Alternativ können Sie Crash-Dumps auch selbst dekodieren .

Siehe auch: Wo befindet sich Google Chrome Crash Dump?


Zur Vereinfachung oben sind die Hauptgründe, warum die Seite abstürzen kann:

  • Sie haben den Fehler gefunden (entweder auf der Website oder mit dem Webbrowser selbst).

    • Website-Fehler

      • Beispiel: Die JavaScript-VM hat den maximal zugewiesenen Speicher erreicht (Absturz nach Arbeitsspeicher).

        Um dies zu überprüfen, führen Sie DevTools aus und überprüfen Sie die Registerkarte Speicher . In diesem Fall sollte der Code unmittelbar vor dem möglichen Ausfall des Speichers (z . B. Problem 810015 ) automatisch angehalten werden . Wenn ja, melden Sie das Problem dem Websitebesitzer oder erstellen Sie ein Profil des JS-Codes, um den Fehler zu finden.

    • Browser-Fehler

      • Deaktivieren Sie Erweiterungen oder führen Sie den Inkognito- Modus aus.
      • Entfernen Sie zwischengespeicherte Dateien .
      • Fehler melden .
      • Installieren Sie den Browser erneut.
      • Verwenden Sie eine andere Chrome-Version wie Chromium, Dev oder Canary .
      • Verwenden Sie andere Browser wie Epic, Firefox, Opera, Brave, Waterfox, Torch oder andere.
      • Wenn das Problem wiederholbar ist, können Sie versuchen, Chrome-Quellen mit Debug-Symbolen neu zu kompilieren und die Stack-Ablaufverfolgung zu analysieren oder zu melden.
  • Sie haben die maximale Anzahl geöffneter Dateien in Ihrem System erreicht (siehe: # 787381 ).

    Führen Sie unter Linux / Unix / macOS Folgendes aus:

    sysctl -a | grep files 

    und prüfen, ob kern.num_filesdie Grenze von erreicht ist kern.maxfiles.

    Wenn dies der Fall ist, erhöhen Sie den Grenzwert, indem Sie die folgenden Befehle ausführen:

    sysctl -w kern.maxfiles=20480 which launchctl && launchctl limit maxfiles 65536 unlimited which ulimit && ulimit -c unlimited 
  • Möglicherweise gibt es Malware / Viren, durch die die Chrome-Dateien geändert werden, die den Absturz verursachen.

  • Möglicherweise liegt ein Problem mit dem Hardwarespeicher vor . Führen Sie also einen Test aus (wie zB memtest).

Mac OS

Führen Sie Folgendes aus, um Protokolle in Chrome anzuzeigen:

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

oder durch Ausführen der Console- App, in der Sie auch nach Absturz-Dumps suchen (oder einchecken ~/Library/Logs/DiagnosticReports). Siehe: Debug-Fehler "Aw, Snap!" In Chrome


Debugging

Wenn keine der oben genannten Maßnahmen hilfreich ist, können Sie in Betracht ziehen , Chrome aus der Quelle zu kompilieren (dies dauert sehr lange), und dann direkt vom Terminal aus starten. Danach sollte auf jeden „Aw, Snap!“ - Fehler der vollständige Stack-Trace mit Funktionen und Zeilen in der Quellcodedatei, wo er aufgetreten ist, folgen.