Sık karşılaşılabilen problemler

Bu başlık altında sıkça karşılaşılabilen hatalar ve olası çözümleri anlatılmaktadır.

docbook-xsl / docbook-xml hataları

Eğer docbook ile ilgili add command failed hatası alıyorsanız. aşağıdaki yolu izleyin.

1- /etc/xml/catalog dosyasını silin

rm -f /etc/xml/catalog

2- docbook-xml ve docbook-xsl paketlerinin sysconf yapılandırmasını silin.

$ rm -f /var/lib/ymp/sysconf/docbook-xsl/postinstall.done
$ rm -f /var/lib/ymp/sysconf/docbook-xml/postinstall.done

3- sysconf modellerini sırası ile elle tetikleyin.

$ bash -e /etc/sysconf.d/docbook-xml
$ bash -e /etc/sysconf.d/docbook-xsl

Segmentation fault hatası

Bu hata genellikle bir C kütüphanesinin veya kodunun hatasından kaynaklanır. Hatanın nereden kaynaklandığını bulmak için gdb kullanabiliriz. Bunun için öncelikle hata veren kodun -g3 parametresi ile derlenmesi gerekir. Örneğin:

$ export CFLAGS="-g3" # C için
$ export CXXFLAGS="-g3" # C++ için
# Bu kısım değişiklik gösterebilir.
$ configure --prefix=/usr
$ make
$ make install
# basit bir C kodunu gcc ile derleyeceksek
$ gcc -g3 main.c -o main

Ardından kodumuzu gdb yardımı ile çalıştıralım.

Örneğin aşağıdaki gibi hatalı yazılmış bir C kodumuz olsun:

int main(){
    char* test; // pointer tanımladık.
    test[1] = 'c'; // mevcut olmayan bir yere yazmaya çalıştık.
    return 0;
}
$ gdb ./main
...
(gdb) run
...
Program received signal SIGSEGV, Segmentation fault.
main () at main.c:3
3           test[1] = 'c';

Bu hatanın nereden geldiğini öğrenmek için backtrace kullanabiliriz:

(gdb) backtrace
#0  main () at main.c:3

Hatanın bulunduğu satıra giderek kaynak koddaki sorunu bulup düzeltebilirsiniz.