Ek E. Hata ayıklama

Genel bilgi

Hata ayıklama öğrenebileceğiniz bir marifettir. İyi hata raporlamasının nasıl yapılacağını anlatan birçok iyi doküman vardır. Birşeyler yapmadan, hatanız kaybolmadan, yada hatanız sizi öldürmeden önce lütfen bunları okuyunuz (MT: Doğru çevirmişimdir umarım). Tercihan hatayı berteraf etmek istiyoruz ve sizin yardımınıza ihtiyacımız var :-) Öyleyse savaşa iyi hazırlanmış olarak gidelim. Bugzilla Bug Raporlama NASIL ve Simon Tatham'ın Nasıl Etkili Hata Raporlaması Yapılır iki güzel dokümandır.

Resmi olmayan bazı düzeltmelerin doğası gereği, tamamını destekleyemiyoruz. Bunun (sizin için) anlamı, Fluxbox'ın uyguladığınız düzeltmeler olmaksızın da çöküp çökmediğini de kontrol etmeniz gerekiyor. Eğer Fluxbox'ınızın düzeltmeleri bir dağıtım sağlayıcı tarafından uygulanmış ise bu konuda onunla temasa geçiniz.

Eğer bu klavuzda anlatılandan daha fazla yardıma ihtiyaç duyarsanız, irc.freenode.net 'te #fluxbox kanalındakilerden biri yardım edebilir. Ana geliştiriciler ve bir kısım nitelikli insan herzaman oradadır.

Fluxbox'a özel şeyler

Fluxbox çıktıları

Herhangi bir uygulama gibi Fluxbox'ta bütün mesajları kendi çalıştığı konsola gönderir. Problem ise, normal durumlarda bütün çıktı metin konsola gider. Fluxbox başlangıç satırınızı exec xterm yada favori terminal emulatörünüze değiştirin. X11'i ve Fluxbox'ı bu terminalde çalıştırın ve bu şekilde kolaylıkla Fluxbox'tan gelen bütün mesajları görebilirsiniz.

İstediğimiz bilgiler

Birçok şeyi bilmek istiyoruz. Hepsini bildiğinizden emin olun.

Core dump'lar ile ne yapılır.

Eğer Fluxbox ile bir core dump aldıysanız şunları yapınız: OPN de #fluxbox kanalına gidin ve fluxgen 'e bir core dump aldığınızı söyleyin. İstediği bütün bilgiler verin. Büyük ihtimalle sizden şunları isteyecektir. Burada çok iş vardır ama biraz duyarlı ve biraz Unix tecrübesi olan herkes yapabilir. Aaa, ayrıca GNU Hata ayıklayıcısı gdb ye ihtiyacınız olacak.

Fluxbox'ı tekrar oluşturma

Evet doğru okudunuz. Gerçek bir hata ayıklayıcı olmak için Fluxbox'ı hata ayıklama sembolleriyle tekrar oluşturmanız lazım.

Fluxbox'ı herzamanki gibi oluşturun (build) ve make yaparken şu seçeneği ekleyin:

    $ CFLAGS=-Wall -g3 CXXFLAGS=-Wall -g3 make

Eğer Fluxbox sitesinden veya kendi dağıtımınızdan kaynak RPM lerini kullanıyorsanız şöyle birşey yapabilirsiniz:

    $ su
    # rpm -ivh fluxbox-0.1.11.1mdk.src.rpm
    # cd /usr/src/RPM/SPECS
    # env DEBUG=true rpm -ba fluxbox.spec
    # rpm -Uvh --force /usr/src/RPM/RPMS/i686/fluxbox*
    # exit
    $ mkdir -p ~/src/fluxbox
    $ cp -R /usr/src/RPM/BUILD/fluxbox* ~/src/fluxbox

Fluxbox dizinine gidin (böylece core dump'ı doğru yerde elde ederiz). Kabuk core-dosyaları etkisizleştiren acayip bir özelliğe sahiptir , yani şu şekilde core dosyası elde edeceğinize emin olun:

    $ ulimit -c unlimited

X11 'i çalıştırın ve hata ayıklamaya başlayın. Fluxbox'ın core dump oluşturması için ne gerekiyorsa yapın. Ve şimdi hata ayıklamaya başlıyoruz:

    $ gdb fluxbox core

gdb içinde bu komutu çalıştırın. (ilk kısım gdb'nin promptudur, onu yazmayın :)):

    (gdb) where

Şimdi birsürü çıktınız var. Fluxgen # ile başlayan bütün çıktıları ister.

Şimdi de bütün bunları bir e-postaya yapıştırıp ve ayrıca ~/.fluxbox/ içindeki dört adet dosyayı da ekleyerek fluxgen'e gönderin.

Lütfen core dosyasını ve kaynak kodu şimdilik silmeyiniz. Fluxgen birkaç ekstra soru sorabilir ve bu dosyalara ihtiyacınız olabilir. Lütfen core dosyasını eğer kendisi istemezse fluxgen'e göndermeyin - çünkü bu dosya tamamen sizin sisteminize özeldir, büyük ihtimalle hiç kullanamayacaktır ve core dosyaları gerçekten büyüktür.