Кто-нибудь знает, есть ли практический способ определить причину «Aw Snap!» сообщение, которое иногда появляется в Google Chrome? Есть ли в Chrome журнал ошибок, на который я могу сослаться? Я подозреваю, что эта проблема вызвана рекурсивным циклом в коде, который затем поглощает всю память? Есть ли способ, которым я могу это подтвердить?
31
Ответы:
Вот, смотрите объяснения здесь: для обычной регистрации в Chrome, вы можете попробовать:
Используйте функцию регистрации в Chrome :
Чтобы включить ведение журнала, запустите Chrome с такими флагами командной строки:
--enable-logging --v=1
Вывод будет сохранен в файл
chrome_debug.log
в каталоге пользовательских данных Chrome .Расположение файла журнала может быть переопределено
CHROME_LOG_FILE
переменной среды.Для получения полного списка флагов проверьте: переключатели командной строки Google Chrome .
Или используйте консоль javascript :
Нажмите Ctrl+ Shift+ J(Windows / Linux) или Cmd+ Option+ J(Mac).
источник
Официальная учетная запись Twitter для разработчиков Chrome связана с веб-сайтом, который помогает вам отлаживать страницы «Aw snap»: http://www.chromium.org/for-testers/enable-logging
Рекомендуется запустить Chrome с такими флагами:
--enable-logging --v=1
Если вы сделаете это, то вы можете получить журнал сбоев из файла
chrome_debug.log
в каталоге пользовательских данных Chrome (в родительском каталогеDefault/
) или в папке двоичной сборки (out\Debug
), если вы используете отладочную сборку.источник
--enable-logging --v=1
задолго до того, как его добавили к принятому ответу.Опаньки! Страница обычно связана с ошибкой ошибки сегментации процесса, которая может быть связана с ошибкой программного обеспечения . Чтобы определить причину, вы можете включить ведение журнала (как предложено в других ответах) или проанализировать обратную трассировку файла дампа ядра (в macOS , Linux , например, Ubuntu ).
Если вы не знаете причину (например, трассировка стека состоит только из адресов памяти), вы можете создать новый тикет поддержки в системе отслеживания ошибок Chrome (или дважды проверить, существует ли он уже). При составлении отчетов вы должны загрузить и включить Crash ID, перейдя на
chrome://crashes/
страницу, чтобы адреса памяти могли быть преобразованы сопровождающими Chrome в символы отладки.В качестве альтернативы вы можете декодировать аварийные дампы самостоятельно.
Смотрите также: Где находится Google Chrome Crash Dump?
Чтобы упростить вышесказанное, вот основные причины сбоя страницы:
Вы нашли ошибку (на веб-сайте или в веб-браузере).
Ошибка сайта
Пример: виртуальная машина JavaScript достигла максимально выделенной памяти (сбой из-за нехватки памяти).
Чтобы проверить это, запустите DevTools и откройте вкладку Память . Если это так, код должен автоматически приостановиться непосредственно перед возможным сбоем нехватки памяти (например, проблема 810015 ). Если это так, сообщите о проблеме владельцу веб-сайта или профилируйте код JS, чтобы найти ошибку.
Ошибка браузера
Вы достигли максимального количества открытых файлов в вашей системе (см .: # 787381 ).
В Linux / Unix / macOS, чтобы проверить это, запустите:
и проверьте,
kern.num_files
достиг ли лимитkern.maxfiles
.Если это так, увеличьте лимит, выполнив следующие команды:
Вы можете иметь некоторые вредоносные программы / вирусы, которые изменяют ваши файлы Chrome, вызывая сбой.
memtest
).Macos
Чтобы отобразить журналы из Chrome, запустите:
или запустив консольное приложение, где вы также можете проверить наличие аварийных дампов (или зарегистрироваться
~/Library/Logs/DiagnosticReports
). См .: Отладка «Aw, Snap!» Ошибка в ChromeОтладка
Если ничего из вышеперечисленного не поможет, вы можете рассмотреть вопрос о компиляции Chrome из исходного кода (это занимает много времени), а затем запустить его непосредственно из терминала. После этого за каждой ошибкой «Aw, Snap!» Должна следовать полная трассировка стека, включая функции и строку в файле исходного кода, где она произошла.
источник