Czy ktoś wie, czy istnieje praktyczny sposób ustalenia przyczyny „Aw Snap!” wiadomość, która czasami pojawia się w Google Chrome? Czy Chrome ma dziennik błędów, do którego mogę się odwoływać? Podejrzewam, że przyczyną tego problemu jest pętla rekurencyjna w kodzie, która następnie pochłania całą pamięć? Czy mogę to jakoś potwierdzić?
31
Odpowiedzi:
Zobacz wyjaśnienia tutaj: w przypadku zwykłego logowania w Chrome możesz spróbować:
Użyj funkcji logowania Chrome :
Aby włączyć rejestrowanie, uruchom Chrome z tymi flagami wiersza poleceń:
--enable-logging --v=1
Dane wyjściowe zostaną zapisane w pliku
chrome_debug.log
w katalogu danych użytkownika Chrome .Lokalizację pliku dziennika można zastąpić
CHROME_LOG_FILE
zmienną środowiskową.Aby wyświetlić pełną listę flag, zaznacz: Przełączniki wiersza polecenia Google Chrome .
Lub użyj konsoli javascript :
Naciśnij Ctrl+ Shift+ J(Windows / Linux) lub Cmd+ Option+ J(Mac).
źródło
Oficjalne konto Twitter Developers Chrome jest połączone ze stroną internetową, która pomaga debugować strony „Aw snap”: http://www.chromium.org/for-testers/enable-logging
Zalecamy uruchomienie Chrome z tymi flagami:
--enable-logging --v=1
Jeśli to zrobisz, możesz pobrać dziennik awarii z pliku
chrome_debug.log
w katalogu danych użytkownika Chrome (w katalogu nadrzędnymDefault/
) lub w folderze kompilacji binarnej (out\Debug
), jeśli korzystasz z kompilacji debugowania.źródło
--enable-logging --v=1
długo przed edycją zaakceptowanej odpowiedzi dodał go.Kurza twarz! strona jest zwykle związana z awarią segmentacji procesu, która może być związana z błędem oprogramowania . Aby ustalić przyczynę, możesz włączyć rejestrowanie (jak sugerowano w innych odpowiedziach) lub przeanalizować ślad pliku zrzutu pamięci (na macOS , Linux , np. Ubuntu ).
Jeśli nie znasz przyczyny (np. Ślad stosu składa się tylko z adresów pamięci), możesz utworzyć nowy bilet pomocy technicznej w systemie śledzenia błędów Chrome (lub dokładnie sprawdź, czy już istnieje). Podczas raportowania należy przesłać i dołączyć identyfikator awarii, przechodząc na
chrome://crashes/
stronę, aby adresy pamięci mogły zostać przetłumaczone na symbole debugowania przez opiekunów Chrome.Alternatywnie możesz samodzielnie zdekodować zrzuty awarii .
Zobacz także: Gdzie znajduje się Google Crash Dump?
Upraszczając powyższe, oto główne przyczyny awarii strony:
Znalazłeś błąd (na stronie internetowej lub w przeglądarce).
Błąd strony internetowej
Przykład: VM VM osiągnęła maksymalną przydzieloną pamięć (awaria braku pamięci).
Aby to sprawdzić, uruchom DevTools i sprawdź zakładkę Memory . W takim przypadku kod powinien automatycznie zatrzymać się tuż przed potencjalnym awarią braku pamięci (np. Problem 810015 ). Jeśli tak, zgłoś problem właścicielowi witryny lub profil JS, aby znaleźć błąd.
Błąd przeglądarki
Osiągnięto maksymalną liczbę otwartych plików w systemie (patrz: # 787381 ).
W systemie Linux / Unix / macOS, aby to sprawdzić, uruchom:
i sprawdź, czy
kern.num_files
osiągnął limitkern.maxfiles
.W takim przypadku zwiększ limit, uruchamiając następujące polecenia:
Możesz mieć złośliwe oprogramowanie / wirusa, który zmienia pliki Chrome powodujące awarię.
memtest
).System operacyjny Mac
Aby wyświetlić dzienniki z Chrome, uruchom:
lub uruchamiając aplikację Console , w której możesz również sprawdzać zrzuty awaryjne (lub meldować się
~/Library/Logs/DiagnosticReports
). Zobacz: Błąd debugowania „Aw, Snap!” W ChromeDebugowanie
Jeśli żadne z powyższych nie pomoże, możesz rozważyć skompilowanie Chrome ze źródła (zajmuje to dużo czasu), a następnie uruchomić bezpośrednio z terminalu. Następnie po każdym błędzie „Aw, Snap!” Powinien następować ślad pełnego stosu, w tym funkcje i wiersz w pliku kodu źródłowego, w którym wystąpił.
źródło