Breakpoint
- C kursu
- Orta seviye
- Ders 95/116
- 5 dk
gdb'de breakpoint koymayı ve adımlamayı öğrenirsin.
Breakpoint koymak
Bir breakpoint (durak noktası), programın çalışmasını geçici olarak durduğu satırdır. gdb'de break komutu ile konur. Örneğin break main fonksiyon girişinde, break program.c:10 onuncu satırda durur.
Durduktan sonra continue ile bir sonraki durak noktasına kadar devam edersin. step bir satırı çalıştırır ve fonksiyon içine girer; next ise fonksiyon çağrılarını tek adımda atlar. Bu ayrım önemlidir: kendi fonksiyonlarını adım adım izlemek için step, kütüphane fonksiyonlarını atlamak için next kullanırsın. Breakpoint'ler hataların yerini daraltmanın en güçlü aracıdır.
Döngüde durak noktası
Bir döngü içinde hata ararken, döngü gövdesine breakpoint koymak her yinelemeyi tek tek incelemeni sağlar. continue ile her yinelemede durursun.
Örnek program: for (int i = 0; i < 3; i++) printf("adım %d\n", i);. gdb'de döngü gövdesinin satırına breakpoint koyup her continue'da bir sonraki yinelemeye geçersin. Bu, yalnızca belirli yinelemelerde ortaya çıkan hataları yakalamanın en hızlı yoludur. Hangi yinelemede sorun olduğunu görmek için i değişkenini print i ile her durduğunda denetlersin.
Uygulama Döngülü program yaz
for (int i = 0; i < 3; i++) döngüsü kur. Gövdede printf("adım %d\n", i); ile her yinelemeyi yazdır. Bu program gdb'de döngü gövdesine breakpoint koymak için uygundur.
Başlangıç kodu
#include <stdio.h>
// 0'dan 2'ye kadar dönen bir döngü yaz
// her yinelemede "adım %d\n" yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
int main(void) {
for (int i = 0; i < 3; i++) {
printf("adım %d\n", i);
}
return 0;
}Beklenen çıktı
adım 0 adım 1 adım 2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 gdb adım komutlarını eşle
| Kavram | Anlamı |
|---|---|
break |
Durak noktası koy |
continue |
Sonrakine kadar devam |
step |
Fonksiyona gir |
next |
Çağrıyı atla |
2 step ile next arasındaki fark nedir?
- step fonksiyona girer, next atlar Doğru cevap
- step daha yavaştır, next daha hızlıdır
- İkisi aynıdır
- step yalnızca main'de çalışır
Açıklama: step fonksiyon çağrısının içine girer; next çağrıyı tek adımda atlar.
3 Döngü sınırını tamamla
for (int i = 0; i < ____; i++)
for (int i = 0; i < 3; i++)
Açıklama: i < 3 koşulu 0, 1, 2 değerlerini üretir.