Bir uygulama çıktı hatası olmadan çöktüğünde, kontrol edebileceğim bir günlük var mı?


18

Bazen herhangi bir çıkış hatası vermeden bazı uygulama çökmeleri olur ( benim durumumda conky , muhtemelen yanlış yapılandırmamdan biri).

Neden çöktüğünü anlamak için kontrol edebileceğim bir hata günlüğü var mı?

Yanıtlar:


14

Uygulamaya bağlıdır. Farklı uygulamaların farklı kayıt sistemleri vardır; sisteminizde çalışan tüm programların çıktılarını içeren tek bir merkezi günlük yoktur.

Bununla birlikte, birçok program günlük dosyalarını dizine koyar /var/log. Dosya /var/log/syslog(veya belki de /var/log/messages), sistem tarafından sistemlerin günlük kaydı için kullanabileceği (seçtikleri takdirde) kullanabileceği bir hizmet olan "sistem günlükçüsü" nden çıktı içerir. Ancak tüm programlar bunu kullanmaz. Çoğunlukla, normalde kullandığınız grafiksel uygulamaları değil, o dosyadaki düşük düzeyli sistem hizmetlerinden gelen iletileri bulacaksınız.

Standart günlük dosyalarının konumları hakkında daha fazla bilgi edinmek isteyebilirsiniz .


6

çökme dosyaları /var/log/crashes/hataları rapor apport ile kullanmak için girer. Bir çekirdek dökümü çıkarabilir apport-unpack, bu çekirdek dökümü gdb'ye koyabilir ve programın çökmesine neyin neden olduğunu öğrenebilirsiniz.

Tüm bunlar bir programcı olduğunuzu varsayar. Eğer değilseniz ... iyi, kazayı yine de düzeltemezsiniz!


1
"Tüm bunlar bir programcı olduğunuzu varsayıyor. Eğer değilseniz ... iyi, kazayı yine de düzeltemezsiniz!" açık kaynak ile hepimiz açıkça kendi sorumluluğumuzda, sorunlarımızı çözmeye çalışabiliriz;)
Strae

@DaNiel: Pek değil! Eğer bir programcı değilseniz ve uygulama kodu hakkında iyi bir anlayışa sahip değilseniz, üşüşen ile birlikte kod ile daha fazla karışıklık muhtemelen alacak :)
AntonioCS

1
Bir programcı olmasanız bile, bazen çekirdek dökümü aramak size sorun hakkında fikir verebilir. Örneğin, bir tür grafik rutininde çöküyor gibi görünüyor - belki de ekran sürücümü güncellemeliyim ...
user1242

2
..ve hata raporları / forumlarındaki hataları açıklamaya yardımcı olur;)
Strae

1
GDB kullanabilen programcı olmayanlar biliyor musunuz? Ben bir programcıyım ve bt full"ah bir geri izleme ... eksik sembolleri ile ... sanırım ben hata ayıklama sembolleri yüklemeniz ve çökme yeniden üretmek için çalışacağım ..." Bir kez nasıl ayarlamak için anladım kırılma noktası ... Bununla birlikte aldığım en gelişmiş şey bu.
maco

3

Conky için de girişler olabilir $HOME/.xsession-errors.


2

Bazı uygulamalarda -d, -D, --debug vb. Hata ayıklamayı açmak için kullanılabilen bayraklar bulunur. Uygulamanın man sayfasını kontrol edin ( man [my-app]) veya böyle bir uygulama olup olmadığını görmek için uygulamayı -h bayrağıyla çalıştırın seçeneği.

Birçok GUI uygulaması $ HOME / .xsession-error içine yazar, bu yüzden çıktıları kontrol etmek için iyi bir yerdir.

maco doğru apport muhtemelen hata ayıklama iyi bilgi almak için en emin yoludur. Ancak bazen çökmeyi yakalamaz.

Her şey başarısız olursa, uygulamayı gdb'de çalıştırarak bilgileri zorlayabilirsiniz. Şöyle bir şey olurdu:

$ gdb my-app

(gdb) run

... çökmesini sağlamak için ne gerekiyorsa yap ...

(gdb) bt full

ve oradan gidin.

GDB yoluna giderseniz, daha önce de belirtildiği gibi sembolleri de yüklemek isteyeceksiniz. Kullanım önerileri için bkz. Https://wiki.ubuntu.com/DebuggingProgramCrash .


Şüphesiz benim için en iyi cevap
Claudix

1

Eğer gidebilirsiniz /var/log/messages or crasheso zaman çalıştırabilirsiniz grepolanlara komuta ve dosyaları aramak için oldukça büyük, bazen alabilirsiniz senin uygulamasını arayın. Başvurunuzla ilgili bilgileri iade edecektir. :)


1

Uygulamanızı bir .desktop başlatıcı dosyasından başlatıyorsanız, bu seçeneği Terminal=true.desktop dosyanıza ekleyin . Bu, programı çalıştırdığınızda bir terminal açacaktır, terminaldeki çıktı, programı komut satırı üzerinden çalıştırırsanız göreceğinize benzer olacaktır. Bu şekilde, GUI çöktüğünde veya kilitlendiğinde, hangi metin çıktısının ona yol açtığını görebilirsiniz.


Bu ne yapar? Bu set zaten var ve ekstra bir şey günlüğe kaydetmiyor.
Matt

Cevabımı düzenleyerek sorunuza cevap vermeye çalıştım. Bu mantıklı mı?
Selah
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.