Ketika aplikasi mogok tanpa menghasilkan kesalahan, apakah ada log yang bisa saya periksa?

17

Kadang-kadang terjadi bahwa beberapa aplikasi crash tanpa memberikan kesalahan output ( conky dalam kasus saya, mungkin adalah salah satu konfigurasi saya yang salah).

Apakah ada log kesalahan yang dapat saya periksa untuk memahami mengapa itu macet?

Strae
sumber

Jawaban:

14

Tergantung pada aplikasi. Aplikasi yang berbeda memiliki sistem logging yang berbeda; tidak ada satu log pusat yang berisi semua output dari semua program yang berjalan di sistem Anda.

Yang sedang berkata, banyak program yang menaruh file log mereka di direktori /var/log. File /var/log/syslog(atau mungkin /var/log/messages), khususnya, berisi output dari "logger sistem", yang merupakan layanan yang disediakan oleh sistem yang dapat digunakan program (jika mereka mau) untuk login. Tetapi tidak semua program menggunakannya. Sebagian besar, Anda akan menemukan pesan dari layanan sistem tingkat rendah dalam file itu, bukan aplikasi grafis yang mungkin Anda gunakan secara normal.

Anda mungkin ingin membaca lebih lanjut tentang lokasi file log standar .

David Z
sumber
6

file macet /var/log/crashes/digunakan untuk digunakan dengan melaporkan bug. Anda dapat mengekstraksi dump inti apport-unpack, memasukkan core dump melalui gdb, dan mencari tahu apa yang menyebabkan program crash.

Ini semua dengan asumsi Anda seorang programmer. Jika Anda tidak ... yah, Anda tidak bisa memperbaiki kerusakan itu!

maco
sumber
1
"Ini semua anggap kamu seorang programmer. Jika kamu tidak ... yah, toh kamu toh tidak bisa memperbaiki crash!" dengan open-source kita semua dapat mencoba untuk menyelesaikan masalah kita, dengan risiko kita sendiri jelas;)
Strae
@ David Niel: Tidak juga! Jika Anda bukan seorang programmer dan Anda tidak memiliki pemahaman yang baik tentang kode aplikasi, semakin Anda mengacaukan kode buggier dengan mungkin akan mendapatkan :)
AntonioCS
1
Bahkan jika Anda bukan seorang programmer kadang-kadang mencari dump inti dapat memberi Anda ide tentang masalahnya. Misalnya, sepertinya
macet
2
..dan ini membantu menjelaskan kesalahan dalam laporan bug / forum;)
Strae
1
Apakah Anda kenal bukan pemrogram yang dapat menggunakan gdb? Saya seorang programmer dan bisa sampai sejauh bt full"oh lihat backtrace ... dengan simbol yang hilang ... kira saya perlu menginstal simbol debug dan mencoba untuk mereproduksi crash ..." Saya pernah menemukan cara untuk mengatur breakpoint ... itu yang paling canggih yang saya dapatkan dengannya.
maco
3

Untuk conky bisa juga ada entri di $HOME/.xsession-errors.

qbi
sumber
2

Beberapa aplikasi memiliki flag yang dapat digunakan untuk menghidupkan debugging, seperti -d, -D, --debug, dll. Periksa halaman manual aplikasi ( man [my-app]) atau jalankan aplikasi dengan flag -h untuk melihat apakah ia memiliki pilihan.

Banyak aplikasi GUI menulis ke $ HOME / .xsession-errors sehingga itu adalah tempat yang bagus untuk memeriksa output.

maco benar bahwa berbagi mungkin adalah cara yang paling pasti untuk mendapatkan info debug yang baik. Kadang-kadang itu tidak menangkap crash.

Jika semuanya gagal, Anda juga dapat memaksa info keluar dengan menjalankan aplikasi di gdb. Itu akan menjadi seperti:

$ gdb my-app

(gdb) run

... lakukan apa yang diperlukan untuk membuatnya crash ...

(gdb) bt full

dan pergi dari sana.

Jika Anda memilih rute gdb, Anda juga ingin menginstal simbol, seperti yang disebutkan sebelumnya. Lihat https://wiki.ubuntu.com/DebuggingProgramCrash untuk saran pegangan tangan.

Bryce
sumber
Jawaban terbaik untuk saya tanpa keraguan
Claudix
1

Anda dapat pergi ke /var/log/messages or crasheskemudian Anda dapat menjalankan grepperintah pada mereka dan mencari aplikasi Anda mencari file kadang-kadang bisa menjadi cukup besar. Ini akan mengembalikan informasi yang relevan dengan aplikasi Anda. :)

myusuf3
sumber
1

Jika Anda meluncurkan aplikasi dari file launcher .desktop, tambahkan opsi Terminal=trueke file .desktop Anda. Ini akan membuka terminal ketika Anda menjalankan program, output pada terminal akan sama dengan apa yang Anda lihat jika Anda telah menjalankan program melalui baris perintah di tempat pertama. Dengan cara ini, ketika GUI crash atau hang, Anda dapat melihat output teks apa yang mengarah ke sana.

Selah
sumber
Apa fungsinya? Saya sudah memiliki set ini dan tidak mencatat tambahan apa pun.
Matt
Saya mencoba menjawab pertanyaan Anda dengan mengedit jawaban saya. Apakah ini masuk akal?
Selesai