GNU Debugger

Vikipedi, özgür ansiklopedi

GDB'nin logosu

GNU Debugger(GDB olarak kısaltılır) GNU yazılım sistemi için kullanılan bir hata ayıklayıcıdır (debugger). Unix tabanlı pek çok sisteminde, C, C++ ve Fortran gibi birçok programlama dilinde çalışan taşınabilir bir hata ayıklayıcıdır.

Tarihçe[değiştir | kaynağı değiştir]

Richard Stallman tarafından 1988 yılında yazılan GDB, GNU General Public License kapsamında dağıtılan ücretsiz bir yazılımdır. 1990 - 1993 yılları arasında Cygnus Solutions' da çalıştığı sırada geliştirilmesine John Gilmore tarafından devam edilmiştir.

Teknik Detaylar[değiştir | kaynağı değiştir]

Özellikler[değiştir | kaynağı değiştir]

GDB bilgisayar programlarının çalıştırılmasını değiştiren ve takip eden pek çok gelişmiş özelliğe sahiptir. Kullanıcı programın iç değişkenlerini ve normal akışı içerisinde çağrılan fonksiyonları izleyebilir ve degiştirebilir.

2003 yılı itbari ile GDB' nin desteklediği işlemciler şunlardır; Alpha, ARM, H8/300, System/370, System 390, X86 ve X86-64, IA-64 "Itanium", Motorola 68000, MIPS,PA-RISC, PowerPC, SuperH, SPARC, VAX.

Standart sürüme eklenmiş daha az bilinen işlemciler; A29K, ARC, AVR, CRIS, D10V, D30V, FR-30, FR-V, Intel i960, M32R, 68HC11, Motorola 88000, MCORE, MN10200, MN10300, NS32K, Stormy16, V850, VAX ve Z8000. (yeni sürümler muhtemelen bu işlemcileri desteklemeyecektir.)

GDB hedef platformlar için simulatörler üzerinde derlenmiştir.

Uzaktan Hata Ayıklama[değiştir | kaynağı değiştir]

Gömülü sistemlerde hata ayıklama işlemi sırasında sıklıkla GDB'nin "uzaktan" modu kullanılır. GDB bir makina üzerinde çalışıyor ve ayıklanan program başka bir makina üzerinde çalışıyorsa uzaktan işlem etkinliği kullanılır. Seri port ya da TCP/IP üzerinden, GDB protokolünü anlayan uzaktaki makinayla bağlantı kurulabilir. Aynı mod kaynak seviyesinde çalışan bir linux kernel gdb kullanarak KGDB tarafından ayıklanması sırasındada kullanılır. Kernel geliştiricileri kgdb' yi kullanarak uygulama programları gibi kernel üzerindede hata ayıklama işlemleri yapabilirler. Kernel code içerisinde istenilen yerlere kesme noktaları konularak kod boyunca belli adımlarla ilerlenip değişkenler gözlemlenebilir. Bazı mimarilerde donanım hata ayıklama yazmaçları (register) mevcut olup, çeşitli izleme noktaları belirlenerek belirli bir bellek adresine ulaşıldığı ya da çalıştırıldığı zaman kesme noktaları tetiklenebilmektedir. kgdb hata ayıklanması yapılacak makinaya seri kablo ya da ethernet kartı üzerinden bağlı ikinci bir makina gerektirir. FreeBSD üzerinde Firewire DMA kullanarak hata ayıklama işlemini gerçekleştirmek mümkündür.

Sınırlamalar[değiştir | kaynağı değiştir]

GDB kendi içerisinde bir grafiksel kullanıcı arayüzüne sahip değildir, standart olarak komut satırı arayüzüne sahiptir. DDD, GDBtk/Insight ve Emacs' in GUD mode uygulaması GDB için grafik arayüzleri sağlamaktadır. Bu araçlar tümleşik geliştirme ortamlarındaki hata ayıklayıcılara benzer özelliklere sahiptir.

memory leak dedektörü gibi çeşitli araçlarda GDB ile beraber çalışabilmektedir.

Örnek Komutlar[değiştir | kaynağı değiştir]

gdb prog.out prog.out ayıklar

gdb > run çalıştırır

Dış bağlantılar[değiştir | kaynağı değiştir]