Visual Studio Code'da .NET hata ayıklayıcısını anlama

Tamamlandı

Önceki ünitede, bir hata ayıklayıcının programınızın yürütülmesini denetlemenize ve durumunu gözlemlemenize yardımcı olduğunu öğrendinsiniz. Bu bölümde, bu görevlerin ikisini de Visual Studio Code'da yapmayı öğreneceksiniz.

Visual Studio Code hata ayıklayıcısını .NET ile kullanacak şekilde yapılandırmayı öğrenerek başlayalım.

.NET hata ayıklaması için Visual Studio Code'un yapılandırılması

Visual Studio Code'da ilk kez bir C# dosyası açtığınızda, C# için önerilen uzantıları yükleme istemi alırsınız.

C# uzantısını yüklemek için Visual Studio Code isteminin ekran görüntüsü.

Visual Studio Code, C# uzantısını yükler ve projenizi derlemek ve hatalarını ayıklamak için gerekli varlıkları eklemek için ek bir istem gösterir.

.NET projenizi derlemek ve hatalarını ayıklamak için gerekli varlıkları eklemek için Visual Studio Code isteminin ekran görüntüsü.

Not

Visual Studio Code'da C# dil desteği, Market 'ndan isteğe bağlı biryüklemesidir. Henüz açmadıysanız, Visual Studio Code bir C# dosyasını açtığınızda otomatik olarak bu uzantıyı yüklemenizi ister. Visual Studio Code'da .NET uygulamanızı oluştururken veya hata ayıklarken sorun yaşıyorsanız, projenizde C# dil desteği için gerekli varlıkların olduğunu doğrulamanız gerekir.

Kesme nokta -ları

Önceki ünitede öğrendiğiniz gibi, bir hata ayıklayıcısı programınızın yürütülmesini analiz edip denetlemenize yardımcı olur. Visual Studio Code hata ayıklayıcısını başlattığınızda, hemen kodunuzu yürütmeye başlar. Kodunuz hızlı yürütüldüğünden, herhangi bir deyimde programı duraklatabilmeniz önemlidir. Bunu kesme noktalarını kullanarak yapacaksınız.

Kesmek istediğiniz satırdaki satır numarasının sol tarafına tıklayarak Visual Studio Code'da kesme noktası ekleyebilirsiniz. Kesme noktası etkinleştirildikten sonra kırmızı bir daire görmeniz gerekir. Kaldırmak için kırmızı daireyi yeniden seçin.

Visual Studio Code düzenleyicisi penceresine eklenen kesme noktasının ekran görüntüsü.

Kesme noktası eklemek için sağ tıklarsanız Koşullu Kesme Noktası Ekle de seçebilirsiniz. Bu tür özel bir kesme noktası, yürütmeyi durdurmak için bir koşul girmenizi sağlar. Bu kesme noktası yalnızca belirtilen koşul karşılandığında etkin olur. Ayrıca, var olan bir kesme noktasını sağ tıklayıp kesme noktasını düzenle seçerek de değiştirebilirsiniz.

Visual Studio Code'da koşullu kesme noktası ayarlama işleminin ekran görüntüsü.

Visual Studio Code hata ayıklayıcısına genel bakış

Kesme noktalarınızı ayarladıktan ve uygulamanızı başlattıktan sonra ekranda yeni bilgi panelleri ve denetimler görünür.

Visual Studio Code hata ayıklayıcısına genel bakış ekran görüntüsü.

  1. Hata ayıklayıcıyı başlatma kontrolleri
  2. Değişkenler durumu
  3. İzlenen değişkenlerin durumu
  4. Geçerli çağrı yığını
  5. Kesme nokta -ları
  6. Yürütme denetimleri
  7. Geçerli yürütme adımı
  8. Hata ayıklama konsolu

Hata ayıklayıcıyı başlatma kontrolleri

Kenar çubuğunun üst kısmında başlatma denetimlerini bulabilirsiniz:

Visual Studio Code hata ayıklama kenar çubuğu denetimlerinin ekran görüntüsü.

  1. Hata ayıklamayı başlatın.
  2. Etkin başlatma yapılandırmasını seçin.
  3. launch.json dosyasını düzenleyin. Gerekirse oluşturun.
  4. Hata ayıklama terminalini açın.

Değişken durumunuzu görüntüleme ve düzenleme

Bir program hatasının nedenini analiz ettiğinizde, beklenmeyen değişiklikleri aramak için değişkenlerinizin durumunu izleyin. Bunu yapmak için Değişkenleri panelini kullanabilirsiniz.

Değişkenleriniz kapsama göre düzenlenmiş olarak gösterilir:

  • Yerel değişkenler: Geçerli fonksiyon olan mevcut kapsamda erişilebilir.
  • Genel değişkenler: Programınızın her yerinden erişilebilir. JavaScript çalışma zamanındaki sistem nesneleri de dahildir, bu nedenle orada çok fazla şey görürseniz şaşırmayın.
  • Kapatma değişkenleri: Varsa geçerli kapanıştan erişilebilir. Kapatma, bir işlevin yerel kapsamını ait olduğu dış işlevin kapsamıyla birleştirir.

Kapsamları ve değişkenleri açmak için oku seçebilirsiniz. Nesneleri açtığınızda, nesnede tanımlanan tüm özellikleri görebilirsiniz.

Değişkene çift tıklayarak bir değişkenin değerini anında değiştirmek mümkündür.

Doğrudan düzenleyici penceresinde bir işlev parametresinin veya değişkenin üzerine gelerek değerine de göz atabilirsiniz.

Hata ayıklama sırasında değişken vurgulama ekran görüntüsü.

Değişkenleri izleme

Bir değişkenin durumunu zaman içerisinde veya farklı işlevlerde izlemek istediğinizde sürekli aramak sıkıcı olabilir. İşte bu noktada Watch paneli kullanışlı olur.

bir değişken adı veya izleyebileceğiniz bir ifade girmek için Artı düğmesini seçebilirsiniz. Alternatif olarak, Değişkenler panelinde bir değişkene sağ tıklayabilir ve izlemek için Ekle'yiseçebilirsiniz.

İzleme panelindeki tüm ifadeler kodunuz çalıştırıldığında otomatik olarak güncelleştirilir.

Çağrı yığını

Programınız her işlev girdiğinde çağrı yığınına bir giriş eklenir. Uygulamanız karmaşık hale geldiğinde ve işlevler içinde birçok kez çağrılan işlevlere sahip olduğunuzda, çağrı yığını işlev çağrılarının izini temsil eder.

Özel durumun kaynağını bulmak yararlıdır. Programınızda beklenmeyen bir kilitlenme varsa, konsolda genellikle aşağıdaki örneğe benzer bir şey görürsünüz:

Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at OrderProcessor.OrderQueue.ProcessNewOrders(String[] orderIds) in C:\Users\Repos\OrderProcessor\OrderQueue.cs:line 12
   at OrderProcessor.Program.Main(String[] args) in C:\Users\Repos\OrderProcessor\Program.cs:line 9

Hata iletisinin altındaki at [...] satır grubuna yığın izlemeadı verilir. Yığın izlemesi, özel durumla bitmeden önce çağrılan her işlevin adını ve kaynağını verir. .NET çalışma zamanının iç işlevlerini de içerdiğinden, deşifre edilmesi biraz zor olabilir.

Burada Visual Studio Code Çağrı yığını paneli kullanışlı olur. İstenmeyen bilgileri filtreleyerek varsayılan olarak yalnızca kendi kodunuzdaki ilgili işlevleri gösterir. Ardından özel durumun nereden kaynaklandığını bulmak için bu çağrı yığınını çözebilirsiniz.

Kesme noktaları paneli

Kesme Noktaları panelinde kodunuza yerleştirdiğiniz tüm kesme noktalarını görebilir ve değiştirebilirsiniz. Yakalanan veya yakalanmayan özel durumlarda kesme seçeneklerini de değiştirebilirsiniz. Kesme Noktaları panelini kullanarak program durumunuzu inceleyebilir ve bir özel durum oluştuğunda Çağrı yığını kullanarak özel durumun kaynağını izleyebilirsiniz.

Yürütmeyi denetleme

Bu denetimleri kullanarak programınızın yürütme akışını denetleyebilirsiniz.

Visual Studio Code hata ayıklayıcısı yürütme denetimlerinin ekran görüntüsü.

Soldan sağa denetimler şunlardır:

  • Yürütmeye devam et veya duraklat: Yürütme duraklatılırsa, sonraki kesme noktasına isabet edene kadar devam eder. Programınız çalışıyorsa, düğme yürütmeyi duraklatmak için kullanabileceğiniz bir duraklatma düğmesine geçer.
  • üzerine adımlayın: Geçerli bağlamda bir sonraki kod deyimini yürütür.
  • Adımına geç: üzerinden adımla gibi, ancak eğer sonraki ifade bir işlev çağrısıysa, bu işlevin ilk kod satırına geçin (step komutuyla aynı).
  • dışarı adımlayın: Bir işlevin içindeyseniz, bu işlevin kalan kodunu çalıştırın ve ilk işlev çağrısından sonraki deyime geri dönün (out komutuyla aynıdır).
  • Yeniden Başlat: Programınızı baştan başlatın.
  • Durdurma: Yürütmeyi sonlandırın ve hata ayıklayıcıdan çıkın.

Hata ayıklama konsolunu kullanma

Windows ve Linux için Ctrl+Shift+Y seçerek hata ayıklama konsolunu gösterebilir veya gizleyebilirsiniz. Mac için Cmd+Shift+Y seçin. Uygulama konsolu günlüklerinizi görselleştirmek için hata ayıklama konsolunu kullanabilirsiniz. Ayrıca, yerleşik .NET hata ayıklayıcısındaki komutlar veya değişken adları gibi ifadeleri değerlendirmek veya geçerli yürütme içeriğinde kod yürütmek için de kullanabilirsiniz.

Hata ayıklama konsolunun altındaki giriş alanına bir .NET ifadesi girebilir ve ardından değerlendirmek için Enter seçeneğini belirleyebilirsiniz. Sonuç doğrudan konsolda görüntülenir.

Visual Studio Code hata ayıklama konsolunun ekran görüntüsü.

Hata ayıklama konsolunu kullanarak bir değişken değerini hızla denetleyebilir, farklı değerlerle bir işlevi test edebilir veya geçerli durumu değiştirebilirsiniz.

Not

Hata ayıklama konsolu .NET kodunu yürütmek ve değerlendirmek için çok yararlı olsa da, hata ayıklama konsolu çalışan bir program için terminal girişini kabul etmediğinden bir .NET Konsol uygulamasını yürütmeye veya hata ayıklamaya çalışırken biraz kafa karıştırıcı olabilir.

Hata ayıklama sırasında terminal girişini işlemek için tümleşik terminali (Visual Studio Code pencerelerinden biri) veya bir dış terminali kullanabilirsiniz. Bu eğitimde tümleşik terminali kullanacaksınız.

  1. .vscode/launch.jsonaçın.

  2. console ayarını integratedTerminal olarak değiştirin:

    "console": "internalConsole",
    

    Hedef:

    "console": "integratedTerminal",
    
  3. Değişikliklerinizi kaydedin.

Sonraki ünitede, daha önce gördüğümüz Fibonacci kodundaki hatayı düzeltmek için hata ayıklayıcısını kullanmayı öğreneceksiniz.