gdb ve lldb Kullanımı
Programlarda adım adım ilerleyin
gdb ve lldb Kullanımı, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.
Etkileşimli Hata Ayıklayıcılar
gdb (GNU) ve lldb (LLVM), çalışan bir programı duraklatmanıza, değişkenleri incelemenize ve kodu satır satır ilerletmenize olanak tanır. Komutları benzerdir.
Hata Ayıklama Bilgileriyle Derleyin
Hata ayıklayıcının makine kodunu kaynak kodunuza eşleyebilmesi için her zaman -g (ideal olarak -O0 ile birlikte) seçeneğiyle derleyin.
g++ -g -O0 main.cpp -o app
# then
gdb ./appKesme Noktaları Ayarlama
Bir kesme noktası, yürütmeyi seçilen bir konumda duraklatır.
- gdb:
break main.cpp:10veyabreak myFunc - lldb:
breakpoint set --file main.cpp --line 10veyab myFunc
Programı Çalıştırma
Yürütmeyi run (veya r) ile başlatın. Program, karşılaştığı ilk kesme noktasında durur ve incelemeye hazır hâle gelir.
Kodda Adım Adım İlerleme
Temel adımlama komutları (gdb ve lldb'de adları aynıdır):
next/n: çağrıların üzerinden geçerek bir satır çalıştırırstep/s: bir çağrının içine girerfinish: geçerli işlev dönene kadar çalıştırırcontinue/c: bir sonraki kesme noktasına kadar devam eder
Değişkenleri İnceleme
Programın durumunu anlamak için değerleri yazdırın.
- gdb:
print x,print arr[2] - lldb:
frame variableveyap x
Örnek Oturum Hedefi
Bu programı düşünün; döngüde durup her yinelemede sum değerini yazdırabilirsiniz.
#include <iostream>
int main() {
int sum = 0;
for (int i = 1; i <= 3; ++i) {
sum += i;
}
std::cout << sum << "\n";
return 0;
}Çağrı Yığını
Durdurulduğunda backtrace (gdb) veya bt (lldb), işlev çağrıları zincirini gösterir. Bir çağırana geçmek ve yerel değişkenlerini incelemek için frame N kullanın.
İzleme Noktaları
Bir izleme noktası, bir değişken değiştiğinde programı durdurur ve beklenmeyen değişikliklerin nerede gerçekleştiğini bulmanıza yardımcı olur.
- gdb:
watch counter - lldb:
watchpoint set variable counter
Koşullu Kesme Noktaları
Elle adım adım ilerlemek zorunda kalmamak için yalnızca bir koşul sağlandığında durun.
- gdb:
break loop.cpp:5 if i == 99 - lldb:
breakpoint set --line 5 --condition "i == 99"
Çökmelerde Hata Ayıklama
Çöken programı hata ayıklayıcının altında çalıştırın; bir segmentasyon hatasında hata oluşan satırda durur. Ardından oraya nasıl ulaştığınızı görmek için bt kullanın. Sonradan bir çekirdek dökümünü de inceleyebilirsiniz.
Hızlı Kontrol
Adımlama komutlarını hatırlayın.
Özet
Etkileşimli hata ayıklamayı öğrendiniz.
-g -O0ile derleyin- Kesme noktaları ayarlayın,
runçalıştırın, ardındannext/step/finishkullanın print/frame variablevebacktraceile inceleyin- İzleme noktaları ve koşullu kesme noktaları, bulunması zor hataları hedefler
Sıkça Sorulan Sorular
“gdb ve lldb Kullanımı” dersi ücretsiz mi?
Evet — “gdb ve lldb Kullanımı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.
“gdb ve lldb Kullanımı” dersinde ne öğreneceğim?
Programlarda adım adım ilerleyin C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C++ Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“gdb ve lldb Kullanımı” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- gdb ve lldb Kullanımı
- AddressSanitizer
- UBSan ve TSan
- Valgrind Temelleri