GNU Debugger
(
GDB
olarak kısaltılır)
GNU
yazılım sistemi icin kullanılan bir hata ayıklayıcıdır (debugger).
Unix
tabanlı pek cok sisteminde,
C
,
C++
ve
Fortran
gibi bircok
programlama dilinde
calı?an ta?ınabilir bir hata ayıklayıcıdır.
Richard Stallman
tarafından 1988 yılında yazılan GDB,
GNU General Public License
kapsamında da?ıtılan ucretsiz bir yazılımdır. 1990 - 1993 yılları arasında
Cygnus Solutions
' da calı?tı?ı sırada geli?tirilmesine
John Gilmore
tarafından devam edilmi?tir.
GDB bilgisayar programlarının calı?tırılmasını de?i?tiren ve takip eden pek cok geli?mi? ozelli?e sahiptir. Kullanıcı programın ic
de?i?kenlerini
ve normal akı?ı icerisinde ca?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 surume 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 surumler muhtemelen bu i?lemcileri desteklemeyecektir.)
GDB hedef platformlar icin
simulatorler
uzerinde derlenmi?tir.
Gomulu sistemlerde
hata ayıklama i?lemi sırasında sıklıkla GDB'nin "uzaktan" modu kullanılır. GDB bir makina uzerinde calı?ıyor ve ayıklanan program ba?ka bir makina uzerinde calı?ıyorsa uzaktan i?lem etkinli?i kullanılır.
Seri port
ya da
TCP/IP
uzerinden, GDB protokolunu anlayan uzaktaki makinayla ba?lantı kurulabilir. Aynı mod kaynak seviyesinde calı?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 uzerindede hata ayıklama i?lemleri yapabilirler. Kernel code icerisinde istenilen yerlere kesme noktaları konularak kod boyunca belli adımlarla ilerlenip de?i?kenler gozlemlenebilir. Bazı mimarilerde donanım hata ayıklama
yazmacları
(register) mevcut olup, ce?itli izleme noktaları belirlenerek belirli bir bellek adresine ula?ıldı?ı ya da calı?tırıldı?ı zaman kesme noktaları tetiklenebilmektedir. kgdb hata ayıklanması yapılacak makinaya
seri kablo
ya da
ethernet
kartı uzerinden ba?lı ikinci bir makina gerektirir.
FreeBSD
uzerinde
Firewire DMA
kullanarak hata ayıklama i?lemini gercekle?tirmek mumkundur.
GDB kendi icerisinde bir
grafiksel kullanıcı arayuzune
sahip de?ildir, standart olarak
komut satırı
arayuzune sahiptir.
DDD
,
GDBtk/Insight
ve
Emacs
' in
GUD mode
uygulaması GDB icin grafik arayuzleri sa?lamaktadır. Bu araclar
tumle?ik geli?tirme ortamlarındaki
hata ayıklayıcılara benzer ozelliklere sahiptir.
memory leak
dedektoru gibi ce?itli araclarda GDB ile beraber calı?abilmektedir.
gdb prog.out
prog.out ayıklar
gdb > run
calı?tırır