So ermitteln Sie, warum Chrome das Dialogfeld "Aw, Snap" anzeigt

31

Weiß jemand, ob es einen praktischen Weg gibt, die Ursache des "Aw Snap!" Meldung, die gelegentlich in Google Chrome angezeigt wird? Verfügt Chrome über ein Fehlerprotokoll, auf das ich verweisen kann? Ich vermute, dass dieses Problem durch eine rekursive Schleife im Code verursacht wird, die dann den gesamten Speicher verschlingt. Kann ich das auf irgendeine Weise bestätigen?

QFDev
quelle

Antworten:

28

Hier finden Sie Erklärungen: Für die normale Protokollierung in Chrome können Sie Folgendes versuchen:

vinnief
quelle
1
Ich denke, die erste Option hilft, dieses Problem einzugrenzen. Die Entwicklungskonsole bleibt hängen, bevor sie etwas Nützliches ausgeben kann.
QFDev
2
Ich habe das Protokoll aktiviert und beim Absturz von Chrome wurden zum Zeitpunkt des Absturzes keine Fehler protokolliert. Gibt es eine Referenz, die Einblicke in die Protokollelemente geben könnte?
Khadim Ali
Ist diese Chrom-Seite über logging.h, was Sie wollen?
Winnief
Könnten Sie bitte den abgekürzten Inhalt der Links in diese Antwort aufnehmen. Es wird abgestanden, wenn die Links sterben.
Mafu
3
Die Javascript-Konsole ist in diesem Fall normalerweise nicht nützlich, da die Verbindung der Entwickler-Tools unterbrochen wird, wenn die Seite abstürzt.
PawnStar
28

Das offizielle Twitter-Konto von Chrome Developers, das mit einer Website verlinkt ist, mit deren Hilfe Sie die "Aw snap" -Seiten debuggen können: http://www.chromium.org/for-testers/enable-logging

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

--enable-logging --v=1

In diesem Fall können Sie ein Absturzprotokoll aus der Datei chrome_debug.logim Chrome-Nutzerdatenverzeichnis (im übergeordneten Verzeichnis von Default/) oder im Binär-Build-Ordner ( out\Debug) abrufen, wenn Sie einen Debugbuild verwenden.

Benny Neugebauer
quelle
5
upvote weil dieser Post schon --enable-logging --v=1 lange vor der Bearbeitung zur akzeptierten Antwort hinzugefügt wurde.
CAD Kerl
2

The Aw, Snap! Seite wird in der Regel auf prozessbezogene Segmentierungsfehler Absturz , die zur Verbindung stehen könnten Software - Fehler . Um die Ursache zu ermitteln, können Sie die Protokollierung aktivieren (wie in anderen Antworten vorgeschlagen) oder die Rückverfolgung der Core-Dump-Datei analysieren (unter MacOS , Linux , z . B. Ubuntu ).

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, ob es bereits eine gibt). 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 übersetzt werden können.

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

Siehe auch: Wo befindet sich Google Chrome Crash Dump?


Um dies zu vereinfachen, sind hier 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 (Speicherausfall).

        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 Absturz aufgrund von Speichermangel automatisch angehalten werden (z . B. Problem 810015 ). Wenn ja, melden Sie das Problem dem Eigentümer der Website oder profilieren Sie den JS-Code, um den Fehler zu finden.

    • Browser-Fehler

      • Deaktivieren Sie möglicherweise Erweiterungen oder führen Sie sie im Inkognito- Modus aus.
      • Ziehen Sie in Betracht, zwischengespeicherte Dateien zu entfernen .
      • Einen Fehler melden .
      • Installieren Sie den Browser neu.
      • Verwenden Sie eine andere Chrome-Version wie Chromium , Dev oder Canary Channel.
      • Verwenden Sie einen anderen Browser wie Epic, Firefox, Opera, Brave, Waterfox, Torch oder einen anderen.
      • Wenn das Problem reproduzierbar ist, können Sie versuchen, Chrome-Quellen mit Debug-Symbolen neu zu kompilieren und den Stack-Trace 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, um dies zu überprüfen:

    sysctl -a | grep files
    

    und prüfen Sie, ob kern.num_filesdas Limit von erreicht ist kern.maxfiles.

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

    sysctl -w kern.maxfiles=20480
    which launchctl && launchctl limit maxfiles 65536 unlimited
    which ulimit && ulimit -c unlimited
    
  • Sie könnten Malware / Viren haben, die Ihre Chrome-Dateien verändern und den Absturz verursachen.

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

Mac OS

Führen Sie zum Anzeigen von Protokollen aus Chrome Folgendes aus:

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

oder durch Ausführen der Konsolen- App, in der Sie auch nach Absturzabbildern suchen (oder einchecken ~/Library/Logs/DiagnosticReports) können. Siehe: Debuggen des Fehlers "Aw, Snap!" In Chrome


Debuggen

Wenn keine der oben genannten Möglichkeiten hilfreich ist, können Sie in Betracht ziehen , Chrome aus dem Quellcode zu kompilieren (was sehr lange dauert) und dann direkt vom Terminal aus auszuführen. Danach sollte auf jeden "Aw, Snap!" - Fehler der vollständige Stack-Trace folgen, einschließlich Funktionen und Zeile in der Quellcodedatei, in der er aufgetreten ist.

Kenorb
quelle