Visual Studio’da Debugger (Hata Ayıklayıcısı) Nasıl Kullanılır?
Kendimizi yazılım geliştirme sırasında karşılaştığımız hatanın nerede olduğunu ararken olur olmadık yerlere konsol çıktıları yazarken…
Visual Studio’da Debugger (Hata Ayıklayıcısı) Nasıl Kullanılır?
Kendimizi yazılım geliştirme sırasında karşılaştığımız hatanın nerede olduğunu ararken olur olmadık yerlere konsol çıktıları yazarken buluyoruz. Ama proje genişledikçe konsol çıktıları bile yetersiz kalıyor. O yüzden bir noktada projemizde Debugger (Hata Ayıklayıcısı) kullanmak tek yol haline geliyor. Bu yazımda Debuggerı kendi projelerim üzerinden örnekler ile neden ve nasıllarını açıklayarak bir Türkçe müsvedde hazırladım.
Debugger Nedir ?
İstediğiniz kodu satır satır takip ederek hangi sınıfa, metoda, özelliğe ve nesneye hangi değerlerin ne zaman hangi metodlardan geldiğini gözlemleyebileceğimiz hataları bulma ve düzenleme sistemidir.
Debugger Neden Önemli ?
Projedeki hataları Console.WriteLine() veya alert() gibi yöntemlerle çıktı alarakta takip edebiliriz ama ölçekler arttıkça takip edilebilirlik zorlaşacak ve debugger kullanmaya mecbur kalacağız. Debugger, runtime (çalışma anında) sırasında hangi satıra hangi değerlerin geldiğini izleyebilmeye olanak sağlar ve hangi koşulların sağlandığını, hangi döngülerin çalıştığını adım adım takip etmeye yarar.

G1. Visual Studio’da Debugger
Debugger’ın gerçek hayat kullanımı için sondaki örneğimi inceleyebilirsiniz.
Debugger Nasıl Kullanılır ?
- Breakpoint (Kesme Noktası) Oluşturma Breakpoint projemizin istediğimiz bir satırında durmasını sağlayan bir araçtır. Kodu durdurmak istediğimiz satırın en solunda imlecin ucunda gözüken gri noktaya tıklıyoruz kırmızıya dönüştüyse debuggerımızı kurmuşuzdur. Ya da kod satırın gelip ‘F9’ tuşuna basarakta oluşturabiliriz.
- Debugging’i Başlatma F5 tuşuna basarak, üst menüden Debug>Start Debugging veya üst menüden yeşil oynat tuşuna basarak programımızı çalıştırıyoruz. Ve breakpoint eklediğimiz nokta tetiklendiğinde programımız kendiliğinden duracak ve aşağıda ‘Auto’ ve ‘Watch’ pencerelerinden kodun güncel durumunu izleyebileceğiz. Debugging sırasında çalışacak bir sonraki satır sarı renk ile işaretlenecektir.
- Stepping (Kodda İlerleme) Kodumuzda ilerleyeceğimiz alanları Step Over, Step Into ve Step Out seçenekleri ile seçebiliyoruz. Step Over (F10): Bu komut geçerli satırı çalıştırır ve sonraki satıra geçer. Eğer geçerli satır bir fonksiyon içeriyorsa fonksiyonun içerisine girmez ama fonksiyonu çalıştırarak dönen değer varsa değerleri döndürürken yapması gerek bir eylem varsa eylemi gerçekleştirir. Step Into (F11): Bu komut geçerli satırı yürütür ve eğer geçerli satır bir fonksiyon içeriyorsa içine girer. Girilen fonksiyon işlemini tamamladığını geri çıkarak kaldığı yerden devam eder. Step Out (Shift + F11): Bu komut içine girilen fonksiyondan çıkmak için kullanılır. Kullanıldığında içinde bulunulan fonksiyon işlemini tamamlar ve geçerli fonksiyona girdiği yere geri dönerek debug işlemine devam eder. Continue (F5): Eğer kod üzerinde başka breakpointler varsa veya mevcut breakpointten geçip programın devam etmesi isteniyorken kullanılır. Run To Cursor (Ctrl + Shift + F10): İmlecin bulunduğu satıra kadar kodu çalıştırır. Debugging sırasında breakpoint konulmamış noktalar için kullanılabilir.
- Değişkenleri ve Durumlarını İzleme Locals Penceresi (Debug > Windows > Locals): Geçerli scope’taki tüm yerel değişkenleri ve onların anlık değerlerini gösterir. Watch Penceresi (Debug > Windows > Watch > Watch 1): Belirli değişken ve ifadeleri sürekli takip etmek istiyorsanız watch penceresinde isimlerini yazarak takip edebilirsiniz. Eklenilen değişken veya ifade çoktan oluşturulmuşsa o anki değerinden eğer oluşturulmamışsa ise oluşturulduğu andan itibaren değerleri izlenebilir olacaktır. Autos Penceresi (Debug > Windows > Autos): Geçerli ve önceki kod satırında kullanılan değişkenleri otomatik olarak gösterir. Locals penceresi gibidir ama en çok kullanılan değişkenler odağıdır. Data Tips (Fare ile üzerine gelme): Debug sırasında o an gördüğünüz bir değişkenin değerini merak ediyorsanız imleci üzerine getirerek gözlemlenir.
- Debugger’ın Diğer Özellikleri Conditional Breakpoints (Koşullu Breakpointler): Bir breakpointin sadece belirli bir koşulda çalışmasını istiyorsak kullanılır. Yerleştirdiğiniz breakpoint’e sağ tıklayarak ‘Conditions…’ seçin ve özel bir değer almasını istediğiniz ifade ile değerini yazın. Hit Count (Çalışma Sayısı): Breakpoint attığımız yerin belirli sayıca çalıştıktan sonra izlemek istiyorsak breakpointe sağ tıklayıp ‘Conditions…’tan Hit Count ve ulaşmasını istediğimiz çalışma sayısını seçiyoruz. Tracepoints (İzleme Noktaları): Bu breakpoint türü ile kodu durdurmadan konsola istediğiniz mesajı yazmaya yarar. Böylece kodunuzdan sessizce bilgi alabilirsiniz. Breakpointinize sağ tıklayıp ‘Actions’ı seçin ve ilgili satır için çıktısını istediğiniz mesajı ya da mantığı girin. Örnek olarak: “$FUNCTION: x in değeri: {x}” Breakpoint Group: Kodunuzda farklı sıralarla izlemek istediğiniz satırlar varsa breakpoint grupları yaparak sıraya sokabilirsiniz. Böylece breakpointler her çağırıldıklarında değil grupta sıradaki bir sonraki noktaysa ve çağırıldıysa kodu kesecektir. Immediate Window(Debug > Windows > Immediate): Debug sırasında değişkenlerin değerlerini değiştirerek testler yapılabilmesini sağlar. Call Stack(Debug > Windows > Call Stack): Kodun o an durduğu noktaya kadar hangi fonksiyonların birbirlerini çağırdığını gösterir. Data Visualizers: XML, HTML, JSON, Datasetleri gibi veri türleri içeren dosyaları rahat okunabilir hale getirmek için görselleştirmede kullanılır. Aşağıdaki büyüteç simgesiyle ulaşılır
- Debugger Gerçek Hayat Örneği Son projemde yazdığım kodumun mantığı, kullanıcı bir Artist ekleme eylemi gerçekleştirmek istediği zaman AddArtist() metodunu (G2) çağırıyor. Metod çalışmadan hemen önce üzerinde bulunan ValidationAspect (G3), Artist Validator (G4) kuralları ile çağırılıyor. ValidationAspect içerisinde gönderilen ArtistValidator gerçek bir kural sınıfı olup olmadığı kontrol ediliyor. Ve atanan tüm kurallar ValidationTool (G5) sayesinde tek tek kontrol ediliyor.

G2. ArtistManager içerisindeki AddArtist metodu

G3. Validation uygulaması için yazdığım bir Aspect

G4. Kullanıcıdan alınan değerlerin sınandığı kuralları barındıran ArtistValidator()

G5. ValidationTool
Kodumun verdiği hata gerçekten kullanıcıdan gelen hatalı veriden mi yoksa koddan mı kaynaklı olduğunu öğrenmek için Validation işlemine başlanıldığında ilk çalışacak yere breakpoint ekliyorum (Validation Aspect L26).

GIF1 Live Debugging Session
Artist ismi olarak sadece “S” giriyorum ve isim en az 2 karakterli olabilir hatasına yakalanmasını bekliyorum. Validation Tool içerisine Artist objemin tüm değerleri Artist Validator içerisindeki kuralların hepsine ‘true’ döndürmediği için hataya yakalanıyorum. Bu sırada da adım adım hangi metotların neyi nereden çağırdığını kontrol ederek benim ya da kodda hata olup olmadığını kontrol ediyorum.
Sonuna kadar okuduğunuz için teşekkür ederim. Umarım soru işaretlerinizi gidermede yardımcı olabilmişimdir. Daha fazla sorunuz varsa veya ulaşmak isterseniz bilgilerimi aşağıda bulabilirsiniz.
arasateser@gmail.com linkedin.com/in/arasateser https://github.com/arasateser
메타데이터
- post_id
- a873db063726
- slug
- visual-studioda-debugger-hata-ayıklayıcısı-nasıl-kullanılır-a873db063726
- url
- https://medium.com/@arasateser/visual-studioda-debugger-hata-ay%C4%B1klay%C4%B1c%C4%B1s%C4%B1-nas%C4%B1l-kullan%C4%B1l%C4%B1r-a873db063726
- canonical_url
- https://medium.com/@arasateser/visual-studioda-debugger-hata-ay%C4%B1klay%C4%B1c%C4%B1s%C4%B1-nas%C4%B1l-kullan%C4%B1l%C4%B1r-a873db063726
- author_url
- https://medium.com/@arasateser
- status
- ok
- fetched_at
- 2026-07-09 06:11:55