Як визначити, що змушує Chrome відображати діалог "Ой, оснащення"


31

Хтось знає, чи є практичний спосіб визначити причину "Aw Snap!" повідомлення, яке періодично з’являється в Google Chrome? Чи в Chrome є журнал помилок, на який я можу посилатися? Я підозрюю, що ця проблема викликана рекурсивним циклом у коді, який потім проковтує всю пам'ять? Чи я можу це підтвердити?



Відповіді:


28

Тут див. Пояснення: для звичайного входу в Chrome ви можете спробувати:


1
Я думаю, що перший варіант допоможе вирішити цю проблему. Консоль розробника висить, перш ніж він може видавати будь-що корисне.
QFDev

2
Я ввімкнув журнал і після хромової аварії він не ввійшов жодної помилки під час аварії. Чи є посилання, які могли б дати уявлення про елементи журналу?
Хадим Алі


Чи можете ви включити скорочений зміст посилань у цій відповіді. Він погіршиться, якщо посилання загине.
мафу

3
Консоль Javascript зазвичай не корисна в цьому випадку, оскільки інструменти розробника відключаються при збої сторінки.
PawnStar

28

Офіційний обліковий запис Twitter для розробників Chrome, пов’язаний із веб-сайтом, який допомагає налагоджувати сторінки "Aw snap": http://www.chromium.org/for-testers/enable-logging

Рекомендація - запустити Chrome із цими прапорами:

--enable-logging --v=1

Якщо ви це зробите, то ви можете схопити журнал збоїв з файлу chrome_debug.logв каталозі даних користувачів Chrome (у батьківському каталозі Default/) або у папці бінарної збірки ( out\Debug), якщо ви використовуєте збірку налагодження.


5
upvote, оскільки ця публікація, згадана --enable-logging --v=1 задовго до редагування до прийнятої відповіді, додала її.
CAD заблокував

2

От чорт! сторінка, як правило, пов'язана з збоєм у сегментації процесу, який може бути пов'язаний з програмною помилкою . Щоб визначити причину, ви можете увімкнути ведення журналу (як це пропонується в інших відповідях) або проаналізувати зворотній шлях основного дамп-файлу (на macOS , Linux , наприклад, Ubuntu ).

Якщо ви не знаєте причину (наприклад, слід стека складається лише з адрес пам'яті), ви можете створити нову службу підтримки в системі відстеження помилок Chrome (або двічі перевірити, чи вона вже є). Під час звітності слід завантажувати і включати ідентифікатор збоїв, перейшовши на chrome://crashes/сторінку, щоб адреси пам'яті можна було переводити в символи налагодження службами Chrome.

Крім того, ви можете самостійно розшифрувати демпінгове обладнання .

Дивіться також: Де розташований Google Chrome Crash Dump?


Щоб спростити вище, ось основні причини, чому сторінка може збоїти:

  • Ви знайшли помилку (або на веб-сайті, або у веб-переглядачі, самому).

    • Помилка веб-сайту

      • Приклад: JavaScript VM досяг максимально виділеної пам'яті (збій поза пам'яттю).

        Щоб перевірити це, запустіть DevTools і перевірте вкладку Пам'ять . Якщо це так, код повинен автоматично призупинятися безпосередньо перед потенційним збоєм пам'яті (наприклад, випуск 810015 ). Якщо це так, повідомте про проблему власнику веб-сайту або профіліруйте JS-код, щоб знайти помилку.

    • Помилка браузера

      • Спробуйте відключити розширення або запустити в режимі анонімного перегляду .
      • Подумайте про видалення кешованих файлів .
      • Повідомити про помилку .
      • Перевстановіть браузер.
      • Використовуйте іншу версію Chrome, наприклад, Chromium , Dev або Canary канал.
      • Використовуйте різні веб-переглядачі, такі як Epic, Firefox, Opera, Brave, Waterfox, Torch або інші.
      • Якщо проблема повторюється, ви можете спробувати перекомпілювати джерела Chrome із символами налагодження та проаналізувати слід стека або повідомити про це.
  • Ви досягли максимально відкритих файлів у вашій системі (див .: # 787381 ).

    У Linux / Unix / macOS для перевірки цього запустіть:

    sysctl -a | grep files
    

    і перевірити, чи kern.num_filesдосягнуто межі kern.maxfiles.

    Якщо це так, збільште ліміт, виконавши такі команди:

    sysctl -w kern.maxfiles=20480
    which launchctl && launchctl limit maxfiles 65536 unlimited
    which ulimit && ulimit -c unlimited
    
  • У вас може бути деяке зловмисне програмне забезпечення / вірус, який змінює ваші файли Chrome, викликаючи збій.

  • У вас може виникнути проблема з апаратною пам'яттю . Тому проведіть якийсь тест (наприклад, memtest).

macOS

Щоб відобразити журнали з Chrome, запустіть:

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

або запустивши додаток Console , де ви також можете перевірити наявність відмов (або реєстрації ~/Library/Logs/DiagnosticReports). Див.: Налагодження помилки "Ой, оснащення!" В Chrome


Налагодження

Якщо жодне з перерахованих вище не допомагає, ви можете розглянути можливість компіляції Chrome з джерела (займає багато часу), а потім запустити безпосередньо з Терміналу. Після цього за кожною помилкою "Ау, оснащення!" Слід супроводжувати повний слід стека, включаючи функції та рядок у файлі вихідного коду, де це сталося.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.