Saya menggunakan Ubuntu 14.04.
Setelah menginstal beberapa aplikasi saya menghadapi kesalahan segmentasi (core dumped) error.
Apa artinya ? Bagaimana saya bisa mengatasi masalah ini?
Sebagai contoh :
Setelah menginstal chrome-stable, ketika saya meluncurkannya dari terminal saya mengalami kesalahan ini.
sudo rm -rf ~/.config/google-chrome ~/.cache/google-chrome
,. Kemudian jalankan itu mode penyamarangoogle-chrome --incognito
Jawaban:
Apa artinya?
Lihat AU: Apa itu kesalahan segmentasi? dan juga ini yang memiliki beberapa contoh bagaimana mereproduksinya, SO: Apa itu kesalahan segmentasi? . deskripsi paling sederhana yang dapat saya berikan (mungkin bukan yang sempurna):
Beberapa kasus: Nilai bacaan dengan pointer yang diinisialisasi, Keluar dari jangkauan dalam array, Panggilan fungsi (ketika kompatibilitas ke belakang tidak dipertahankan), ...
Namun tidak selalu mudah menemukan penyebabnya dengan program besar atau yang menyampaikan pada lib proyek lain. Dan sebagian besar kasus berakhir dengan laporan bug, baik untuk program target atau satu jika dependensinya (baik proyek hulu atau paket distribusi hilir).
Bagaimana saya bisa mengatasi masalah ini?
Jika Anda tidak melakukan konfigurasi / pengaturan khusus dan Anda semua pembaruan diinstal. Buat laporan bug , lihat Bagaimana cara melaporkan bug?
Jika open source didukung oleh penggunaan Ubuntu
ubuntu-bug
(apport-bug
). Untuk sumber tertutup pihak ketiga, periksa halaman bantuan mereka bagaimana melaporkan bug dan mengumpulkan data terkait.Catatan: Jika Anda memiliki sedikit latar belakang pemrograman, disarankan agar Anda mencoba yang terbaik untuk menyelesaikannya sendiri. Ada banyak laporan bug di luar sana yang tidak aktif selama bertahun-tahun. Atau setidaknya mengumpulkan cukup data debug untuk menyelesaikan masalah sebelum melaporkannya.
Beberapa Alat yang Berguna untuk Debugging
apport-bug
log / core dump / backtraceJika Anda tidak memiliki pesan kesalahan sebelum kesalahan segmentasi. Jalankan dengan
--save
opsi dan cari back-trace log:gdb
kode sumber backtrace / debugingJika tidak berhasil, gunakan
gdb
:Jika Anda mendapatkan pesan kesalahan, periksa web, launchpad, dan di pelacak bug proyek hulu jika ada kasus serupa.
Untuk beberapa pengguna tingkat lanjut atau yang mengikuti jalur pembelajaran ac / c ++, mereka dapat mengunduh
-dbg
paket simbol yang sesuai . Kemudian Anda dapat menggunakangdb
untuk melacak aliran program melalui sumber dan mendapatkan fungsi / instruksi yang tepat yang meningkatkan kesalahan runtime.strace
pelacakan panggilan sistemAlat lain yang dapat membantu adalah
strace
, saya menyukainya. Ini benar-benar alat yang ampuh.Itu muncul dengan sendirinya:
Sumber:
man strace
ltrace
penelusuran panggilan perpustakaan dinamisSumber:
man ltrace
sumber