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?
31
Antworten:
Hier finden Sie Erklärungen: Für die normale Protokollierung in Chrome können Sie Folgendes versuchen:
Verwenden Sie die Protokollierungsfunktion von Chrome :
Starten Sie Chrome mit den folgenden Befehlszeilenflags, um die Protokollierung zu aktivieren:
--enable-logging --v=1
Die Ausgabe wird in der Datei
chrome_debug.log
im Nutzerdatenverzeichnis von Chrome gespeichert .Der Speicherort der Protokolldatei kann von der
CHROME_LOG_FILE
Umgebungsvariablen überschrieben werden .Die vollständige Liste der Flags finden Sie unter: Befehlszeilenschalter in Google Chrome .
Oder nutzen Sie die Javascript-Konsole :
Drücken Sie Ctrl+ Shift+ J(Windows / Linux) oder Cmd+ Option+ J(Mac).
quelle
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.log
im Chrome-Nutzerdatenverzeichnis (im übergeordneten Verzeichnis vonDefault/
) oder im Binär-Build-Ordner (out\Debug
) abrufen, wenn Sie einen Debugbuild verwenden.quelle
--enable-logging --v=1
lange vor der Bearbeitung zur akzeptierten Antwort hinzugefügt wurde.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
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:
und prüfen Sie, ob
kern.num_files
das Limit von erreicht istkern.maxfiles
.Wenn dies der Fall ist, erhöhen Sie das Limit, indem Sie die folgenden Befehle ausführen:
Sie könnten Malware / Viren haben, die Ihre Chrome-Dateien verändern und den Absturz verursachen.
memtest
).Mac OS
Führen Sie zum Anzeigen von Protokollen aus Chrome Folgendes aus:
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 ChromeDebuggen
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.
quelle