Cara menentukan apa yang menyebabkan Chrome menampilkan dialog "Aw, Snap"

31

Adakah yang tahu jika ada cara praktis untuk menentukan penyebab "Aw Snap!" pesan yang sesekali muncul di Google Chrome? Apakah Chrome memiliki log kesalahan yang bisa saya lihat? Saya menduga masalah ini disebabkan oleh loop rekursif dalam kode yang kemudian menelan semua memori? Apakah ada cara saya dapat mengkonfirmasi ini?

QFDev
sumber

Jawaban:

28

Ada, lihat penjelasan di sini: untuk login biasa di Chrome, Anda dapat mencoba:

vinnief
sumber
1
Saya pikir opsi pertama akan membantu mengisolasi masalah ini. Konsol dev hang sebelum dapat menampilkan apa pun yang digunakan.
QFDev
2
Saya mengaktifkan log dan setelah krom crash, itu tidak mencatat kesalahan pada saat crash. Apakah ada referensi yang bisa memberikan wawasan tentang item log?
Khadim Ali
Apakah halaman kromium ini tentang logging.h apa yang Anda inginkan?
vinnief
Bisakah Anda memasukkan isi tautan yang disingkat dalam jawaban ini. Ini akan menjadi basi jika tautannya mati.
mafu
3
Konsol Javascript biasanya tidak berguna dalam kasus ini, karena alat dev memutuskan sambungan ketika halaman rusak.
PawnStar
28

Akun Twitter resmi Pengembang Chrome yang ditautkan ke situs web yang membantu Anda men-debug halaman "Aw snap": http://www.chromium.org/for-testers/enable-logging

Rekomendasi ini untuk meluncurkan Chrome dengan bendera ini:

--enable-logging --v=1

Jika Anda melakukannya, maka Anda dapat mengambil log kerusakan dari file chrome_debug.logdi direktori data pengguna Chrome (di direktori induk Default/) atau di folder binary build ( out\Debug) jika Anda menggunakan debug build.

Benny Neugebauer
sumber
5
upvote karena posting ini disebutkan --enable-logging --v=1 jauh sebelum edit untuk jawaban yang diterima menambahkannya.
CAD berbicara
2

The Yah! Halaman ini biasanya terkait dengan proses kesalahan segmentasi yang dapat dikaitkan dengan bug perangkat lunak . Untuk menentukan penyebabnya, Anda dapat mengaktifkan pencatatan (seperti yang disarankan dalam jawaban lain) atau menganalisis backtrace dari file dump inti (di macOS , Linux , misalnya Ubuntu ).

Jika Anda tidak tahu penyebabnya (mis. Pelacakan jejak hanya terdiri dari alamat memori), Anda dapat membuat tiket dukungan baru di sistem pelacakan bug Chrome (atau periksa apakah sudah ada). Saat melaporkan, Anda harus mengunggah dan memasukkan Crash ID dengan membuka chrome://crashes/halaman, sehingga alamat memori dapat diterjemahkan ke dalam simbol debug oleh pengelola Chrome.

Atau Anda dapat men - decode dump crash sendiri.

Lihat juga: Di mana Google Chrome Crash Dump berada?


Untuk menyederhanakan di atas, berikut adalah alasan utama mengapa halaman dapat macet:

  • Anda telah menemukan bug (baik di situs web atau dengan browser web sendiri).

    • Bug situs web

      • Contoh: JavaScript VM mencapai memori yang dialokasikan maksimum (kehabisan kehabisan memori).

        Untuk memeriksanya, jalankan DevTools dan periksa tab Memory . Jika itu masalahnya, kode harus berhenti secara otomatis sesaat sebelum potensi kehabisan kehabisan memori (misalnya, Masalah 810015 ). Jika demikian, laporkan masalahnya kepada pemilik situs web, atau profil kode JS untuk menemukan bug.

    • Bug peramban

      • Pertimbangkan menonaktifkan ekstensi atau jalankan dalam mode Penyamaran .
      • Pertimbangkan untuk menghapus file yang di-cache .
      • Laporkan bug .
      • Instal ulang browser.
      • Gunakan versi Chrome yang berbeda seperti saluran Chromium , Dev atau Canary .
      • Gunakan browser yang berbeda seperti Epic, Firefox, Opera, Brave, Waterfox, Torch atau lainnya.
      • Jika masalah berulang, Anda dapat mencoba mengkompilasi ulang sumber Chrome dengan simbol debug dan menganalisis jejak tumpukan atau melaporkannya.
  • Anda telah mencapai file terbuka maksimum di sistem Anda (lihat: # 787381 ).

    Di Linux / Unix / macOS, untuk memverifikasi itu, jalankan:

    sysctl -a | grep files
    

    dan periksa apakah telah kern.num_filesmencapai batas kern.maxfiles.

    Jika itu masalahnya, tambahkan batas dengan menjalankan perintah berikut:

    sysctl -w kern.maxfiles=20480
    which launchctl && launchctl limit maxfiles 65536 unlimited
    which ulimit && ulimit -c unlimited
    
  • Anda dapat memiliki beberapa malware / virus yang mengubah file Chrome Anda yang menyebabkan crash.

  • Anda dapat memiliki beberapa masalah yang berhubungan dengan memori perangkat keras . Jadi jalankan beberapa tes (seperti memtest).

macOS

Untuk menampilkan log dari Chrome, jalankan:

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

atau dengan menjalankan aplikasi Konsol , di mana Anda juga dapat memeriksa semua dump crash (atau check-in ~/Library/Logs/DiagnosticReports). Lihat: Kesalahan debug "Aw, Snap!" Di Chrome


Debugging

Jika tidak ada di atas yang membantu, Anda dapat mempertimbangkan mengkompilasi Chrome dari sumbernya (membutuhkan waktu lama), kemudian jalankan langsung dari Terminal. Setelah itu, setiap kesalahan "Aw, Snap!" Harus diikuti oleh jejak stack penuh termasuk fungsi dan baris dalam file kode sumber di mana itu terjadi.

kenorb
sumber