gdb temelleri
- C kursu
- Orta seviye
- Ders 94/116
- 5 dk
gdb ile program hata ayıklamayı öğrenirsin.
gdb temelleri
gdb (GNU Debugger), C programlarını adım adım çalıştıran ve iç durumunu incelemeni sağlayan bir araçtır. Kullanmak için programı -g seçeneğiyle derlersin: gcc -g program.c -o program.
Sonra gdb ./program ile başlatırsın. Önemli komutlar: run programı başlatır, quit gdb'den çıkar, list kaynak kodu gösterir. Program çökse bile gdb içinde kaldığı için nerede durduğunu görebilirsin. Bu, printf eklemekten çok daha hızlıdır; değişkenleri anında inceleyebilir, yürütmeyi durdurup devam ettirebilirsin.
Hata ayıklanabilir program
gdb'nin yararlı olması için programın birden çok fonksiyon içermesi iyi olur. Her fonksiyon, gdb'de durabileceğin bir çapa noktasıdır. Basit bir örnek: int sum_range(int lo, int hi) fonksiyonu verilen aralıktaki tamsayıları toplar.
Uygulama: int total = 0; for (int i = lo; i <= hi; i++) total += i; return total;. main bu fonksiyonu çağırır ve sonucu yazdırır. gdb'de break sum_range ile fonksiyon girişine durak noktası koyabilir, değişkenleri tek tek inceleyebilirsin. Bu yapı, gerçek projelerde her fonksiyonun bağımsız olarak sınanmasının temelidir.
Uygulama Hata ayıklanabilir program yaz
int sum_range(int lo, int hi) fonksiyonunu yaz: lo'dan hi'ye kadar toplamı hesapla. main içinde printf("%d\n", sum_range(1, 10)); ile sonucu yazdır.
Başlangıç kodu
#include <stdio.h>
// sum_range fonksiyonunu yaz
// main içinde sum_range(1, 10) çağır ve yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
int sum_range(int lo, int hi) {
int total = 0;
for (int i = lo; i <= hi; i++) {
total += i;
}
return total;
}
int main(void) {
printf("%d\n", sum_range(1, 10));
return 0;
}Beklenen çıktı
55
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 gdb ile debug etmek için program nasıl derlenir?
- gcc -s program.c -o program
- gcc -O2 program.c -o program
- gcc -g program.c -o program Doğru cevap
- gcc -c program.c
Açıklama: -g seçeneği hata ayıklama bilgisini ekler; gdb bunu kullanır.
2 sum_range çağrısını tamamla
printf("%d
", sum_range(1, ____));
printf("%d
", sum_range(1, 10));
Açıklama: sum_range(1, 10) 1'den 10'a kadar toplar; sonuç 55.
3 gdb komutlarını eşle
| Kavram | Anlamı |
|---|---|
run |
Programı başlat |
quit |
gdb'den çık |
list |
Kaynak göster |
-g |
Hata ayıklama bilgisi |