dev-tools

Hata Ayıklayıcı (Debugger)

Bir hata ayıklayıcı (debugger), bir geliştiricinin çalışan bir programı kontrol etmesine ve incelemesine olanak tanıyan bir araçtır — statik kod okuma veya dağınık print ifadelerinden ne olduğunu tahmin etmek yerine, yürütmeyi belirli bir noktada duraklatmak (bir kesme noktası), kodda satır satır ilerlemek ve değişkenlerin, çağrı yığınının ve belleğin canlı değerlerini incelemek. Çoğu modern IDE entegre bir hata ayıklayıcı sunar (VS Code'un yerleşik hata ayıklayıcısı, tarayıcıda çalışan JavaScript için Chrome DevTools, Python için `pdb`/`debugpy`, Go için `delve`); bunlar bir hata ayıklama protokolü aracılığıyla çalışan işlemle iletişim kurar. AI/SaaS geliştiricileri için önemi: bir hata ayıklayıcı, "bu neden bozuk" sorusunu kodu okuyup umut etme egzersizinden, gerçekte bozulduğu anda ne olduğunu doğrudan gözlemleme egzersizine dönüştürür — bu, önemsiz bir hatanın ötesindeki her şey için önemli ölçüde daha hızlıdır. Ayrıca, giderek AI kodlama ajanlarının kendilerinin de kullandığı bir araçtır: ajan tabanlı bir hata ayıklama iş akışı bir kesme noktası koyabilir, programı çalıştırabilir, gerçek çalışma zamanı değerlerini inceleyebilir ve bu gerçek temeli, yalnızca kaynaktan tahmin etmek yerine doğru bir hipotez oluşturmak için kullanabilir. Nasıl çalışır: bir hata ayıklayıcı kesme noktaları (ulaşıldığında yürütmeyi duraklatan işaretçiler) belirler, ardından üzerine adımlamanıza (mevcut satırı yürütür ve bir sonrakinde durur), içine adımlamanıza (çağrılan bir işleve yürütmeyi takip eder) veya dışına adımlamanıza (mevcut işlevi bitirir ve çağırana döner) izin verir. Herhangi bir duraklamada, çağrı yığınını (hangi işlevlerin hangi işlevleri hangi sırayla çağırdığını) inceleyebilir ve mevcut kapsamda ifadeleri değerlendirebilirsiniz, belirli değişkenleri değişiklikler için izlemek dahil. Uygulamalı örnek: bir geliştirici, bir alışveriş sepeti toplamının bazen yanlış olduğuna dair bir hata raporu alır. Tahmin etmek yerine, `calculateTotal()` işlevine bir kesme noktası koyar, çalışan uygulamada bir sepete ürün ekleyerek hatayı yeniden üretir ve hata ayıklayıcı, işlev çağrıldığı anda yürütmeyi duraklatır. Hata ayıklayıcının değişkenler panelinde `items` dizisini inceler ve hemen aynı `id`'ye ancak farklı `quantity`'ye sahip mükerrer bir girdi görür — hata, kodu okuyarak varsaydıkları gibi toplam hesaplamasında değil, "sepete ekle" mantığının öğeleri yanlış birleştirmesindedir. Çağıran işleve geri adımlar, hatalı birleştirme mantığını bulur ve düzeltir — bu, yalnızca `console.log` tahminiyle çok daha uzun sürecek bir keşiftir ve her yeni log ifadesi eklendikten sonra uygulamayı yeniden dağıtmayı, ardından bir sonraki bilgi parçasını görmek için tam olarak aynı hatayı tekrar yeniden üretmeyi gerektirirdi.

İlgili terimler

Daha fazla Geliştirici Araçları terimi