CodeBlanks Logo Icon CodeBlanks

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

main.c
#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

main.c
#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

Soru
printf("%d
", sum_range(1, ____));
Cevap
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

Orta seviye bölümündeki tüm dersler