Öğretici: Visual Studio kullanarak bir .NET konsol uygulamasında hata ayıklama

Bu öğreticide Visual Studio'da kullanılabilen hata ayıklama araçları tanıtılmaktadır.

Önemli

Tüm klavye kısayolları Visual Studio'dan gelen varsayılan değerleri temel alır. Klavye kısayollarınız farklılık gösterebilir, daha fazla bilgi için bkz. visual studioklavye kısayolları.

Önkoşullar

  • Bu öğretici, Visual Studiokullanarak oluşturduğunuz .NET konsol uygulaması ile içinde çalışır.

Hata ayıklama derleme yapılandırmasını kullanma

Hata Ayıklama ve Sürüm Visual Studio'nun yerleşik derleme yapılandırmalarıdır. Hata ayıklamak için Debug derleme yapılandırmasını ve son dağıtım için Sürüm yapılandırmasını kullanırsınız.

Hata ayıklama yapılandırmasında, bir program tam sembolik hata ayıklama bilgileriyle derlenir ve optimizasyon yapılmaz. Kaynak kodu ve oluşturulan yönergeler arasındaki ilişki daha karmaşık olduğundan iyileştirme hata ayıklamayı karmaşıklaştırır. Bir programın yayın yapılandırması sembolik hata ayıklama bilgilerine sahip değildir ve tamamen iyileştirilmiştir.

Varsayılan olarak, Visual Studio Hata Ayıklama derleme yapılandırmasını kullanır, bu nedenle hata ayıklamadan önce değiştirmeniz gerekmez.

  1. Visual Studio'yu başlatın.

  2. Visual Studiokullanarak .NET konsol uygulaması oluşturma içinde oluşturduğunuz projeyi açın.

    Geçerli derleme yapılandırması araç çubuğunda gösterilir. Aşağıdaki araç çubuğu görüntüsünde Visual Studio'nun uygulamanın Hata Ayıklama sürümünü derlemek için yapılandırıldığı gösterilmektedir:

    Hata ayıklama vurgulanmış Visual Studio araç çubuğu

Kesme noktası ayarlama

kesme noktası kesme noktası içeren satır yürütülmeden önce uygulamanın yürütülmesini geçici olarak kesintiye uğratır.

  1. Satırdaki kod penceresinin sol kenar boşluğuna tıklayarak adı, tarihi ve saati görüntüleyen bir kesme noktası ayarlayın. Sol kenar boşluğu, satır numaralarının solundadır. Kesme noktası ayarlamanın diğer yolları, imleci kod satırına getirip F9 tuşuna basmak veya menü çubuğundan Hata AyıklamaKesme Noktası seçmektir.

    Aşağıdaki görüntüde gösterildiği gibi, Visual Studio kesme noktasının ayarlandığı satırı vurgulayıp sol kenar boşluğunda kırmızı bir nokta göstererek belirtir.

    Visual Studio Programı penceresi, kesme noktası ayarlanmış

  2. Programı Hata Ayıklama modunda çalıştırmak için F5 basın. Hata ayıklamayı başlatmanın bir diğer yolu da menüden Hata AyıklamaHata Ayıklamayı Başlat seçmektir.

  3. Program bir ad istedikten sonra konsol penceresine bir metin girin ve Enter tuşunabasın.

  4. Program yürütme, kesme noktasına ulaştığında ve Console.WriteLine yöntemi yürütülmeden önce durur. Locals penceresi, şu anda yürütülmekte olan yöntemde tanımlanan değişkenlerin değerlerini görüntüler.

    Visual Studio'da bir kesme noktasının ekran görüntüsü

Anında penceresini kullanma

Anında penceresi, hata ayıkladığınız uygulamayla etkileşim kurmanızı sağlar. Programınızı nasıl etkilediğini görmek için değişkenlerin değerini etkileşimli olarak değiştirebilirsiniz.

  1. Anında penceresi görünmüyorsa, Hata Ayıklama>Windows>Anındaöğesini seçerek görüntüleyin.

  2. Anında penceresine girin ve Enter tuşuna basın.

  3. Anında penceresine girin ve Enter tuşuna basın.

    Anında penceresi, dize değişkeninin değerini ve DateTime değerinin özelliklerini görüntüler. Ayrıca, değişkenlerin değerleri Locals penceresinde güncelleştirilir.

    Visual Studio 2019'da Yerel Değişkenler ve Anlık Pencere

  4. Program yürütmeye devam etmek için F5 basın. Devam etmenin bir diğer yolu da menüden Debug>Devam seçerek devam etmektir.

    Konsol penceresinde görüntülenen değerler, Anında penceresinde yaptığınız değişikliklere karşılık gelir.

    girilen değerleri gösteren konsol penceresini

  5. Uygulamadan çıkmak ve hata ayıklamayı durdurmak için herhangi bir tuşa basın.

Koşullu kesme noktası ayarlama

Program, kullanıcının girdiği dizeyi görüntüler. Kullanıcı herhangi bir şey girmezse ne olur? Bunu koşullu kesme noktasıadlı yararlı bir hata ayıklama özelliğiyle test edebilirsiniz.

  1. Kesme noktasını temsil eden kırmızı noktaya sağ tıklayın. Bağlam menüsünde Koşullar'ni seçerek Kesme Noktası Ayarları iletişim kutusunu açın. Koşulları kutusunu, seçili değilse, seçin.

    Kesme noktası ayarları panelini gösteren Düzenleyicisi - C#

  2. Koşullu İfadeiçin, x 5 olup olmadığını test eden örnek kodu gösteren alana aşağıdaki kodu girin.

    string.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

    Kesme noktasına her isabet edildiğinde, hata ayıklayıcı String.IsNullOrEmpty(name) metodunu çağırır ve yalnızca metod çağrısı truedöndürdüğünde bu satırda durur.

    Koşullu ifade yerine, isabet sayısıbelirtebilirsiniz. Bu sayı, bir deyimin belirtilen sayıda yürütülmesinden önce program yürütmeyi kesintiye uğratır. Bir diğer seçenek debir filtre koşulu belirtmektir. Bu koşul, iş parçacığı tanımlayıcısı, işlem adı veya iş parçacığı adı gibi özniteliklere göre program yürütmeyi kesintiye uğratır.

  3. İletişim kutusunu kapatmak için Kapat'ı seçin.

  4. F5tuşlarına basarak programı hata ayıklama ile başlatın.

  5. Konsol penceresinde adınızı girmeniz istendiğinde Enter tuşuna basın.

  6. Belirttiğiniz koşul (namenull veya String.Empty) karşılandığından, program yürütme kesme noktasına ulaştığında ve Console.WriteLine yöntemi yürütülmeden önce durdurulur.

  7. Şu anda yürütülen yöntemde yerel olan değişkenlerin değerlerini gösteren Locals penceresini seçin. Bu durumda, Main şu anda yürütülmekte olan yöntemdir. name değişkeninin değerinin ""veya String.Emptyolduğunu gözlemleyin.

  8. Anında penceresine aşağıdaki deyimi girip enterbasarak değerin boş bir dize olduğunu onaylayın. Sonuç true'dır.

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    Soru işareti, anlık pencereye bir ifadeyi değerlendirmesiiçin komut verir.

    C# deyimi yürütüldükten sonra Anlık Pencere "true" değerini döndürür.

  9. Program yürütmeye devam etmek için F5 basın.

  10. Konsol penceresini kapatmak ve hata ayıklamayı durdurmak için herhangi bir tuşa basın.

  11. Kod penceresinin sol kenar boşluğundaki noktaya tıklayarak kesme noktasını temizleyin. Kesme noktasını kaldırmanın diğer yolları, F9 tuşuna basmak veya kod satırı seçiliyken Hata Ayıklama menüsünden > Kesme Noktası Geçişi seçeneğini seçmektir.

Bir programda adım adım ilerleyin

Visual Studio ayrıca bir programda satır satır ilerleyip yürütülmesini izlemenizi sağlar. Normalde, bir kesme noktası ayarlar ve program kodunuzun küçük bir bölümünde program akışını izlersiniz. Bu program küçük olduğundan, programın tamamında adım adım ilerleyebilirsiniz.

  1. Hata Ayıklama>Adımlaseçin. Bir kerede bir deyimin hatalarını ayıklamanın başka bir yolu da F11tuşuna basmaktır.

    Visual Studio, sonraki yürütme satırının yanında bir oku vurgular ve görüntüler.

    C#

    Visual Studio'da yönteme gir - C#

    Visual Basic

    Visual Studio'yu yönteme adımı - Visual Basic

    Bu noktada, Locals penceresi args dizisinin boş olduğunu ve name ve currentDate varsayılan değerlere sahip olduğunu gösterir. Ayrıca, Visual Studio boş bir konsol penceresi açtı.

  2. F11tuşlarına basın. Visual Studio artık bir sonraki yürütme satırını vurgular. Locals penceresi değiştirilmez ve konsol penceresi boş kalır.

    C#

    Yöntem kaynağında Visual Studio adımı - C#

    Visual Basic

    Visual Studio'yu yöntem kaynağına adımı - Visual Basic

  3. F11tuşlarına basın. Visual Studio, name değişken atamasını içeren ifadeyi vurgular. Locals penceresinde namenullve konsol penceresinde "Adınız nedir?" dizesi görüntülenir.

  4. Konsol penceresine bir dize girerek ve Entertuşuna basarak istemi yanıtlar. Konsol yanıt vermiyor ve girdiğiniz dize konsol penceresinde görüntülenmez, ancak Console.ReadLine yöntemi yine de girişinizi yakalar.

  5. F11tuşlarına basın. Visual Studio, currentDate değişken atamasını içeren deyimi vurgular. Locals penceresi, Console.ReadLine yöntemine yapılan çağrı tarafından döndürülen değeri gösterir. Konsol penceresinde, istemde girdiğiniz dize de görüntülenir.

  6. F11tuşlarına basın. Locals penceresi, DateTime.Now özelliğinden atamadan sonra currentDate değişkeninin değerini gösterir. Konsol penceresi değiştirilmez.

  7. F11tuşlarına basın. Visual Studio Console.WriteLine(String, Object, Object) yöntemini çağırır. Konsol penceresinde biçimlendirilmiş dize görüntülenir.

  8. Hata Ayıkla>Adım Dışarıseçin. Adım adım yürütmeyi durdurmanın bir diğer yolu da Shift+F11tuşlarına basmaktır.

    Konsol penceresinde bir ileti görüntülenir ve bir tuşa basmanızı bekler.

  9. Konsol penceresini kapatmak ve hata ayıklamayı durdurmak için herhangi bir tuşa basın.

Yayın derleme yapılandırmasını kullanın

Uygulamanızın Hata Ayıklama sürümünü test ettikten sonra Yayın sürümünü de derleyip test etmelisiniz. Yayın sürümü, bazen bir uygulamanın davranışını olumsuz etkileyebilecek derleyici iyileştirmeleri içerir. Örneğin, performansı geliştirmek için tasarlanmış derleyici iyileştirmeleri, çok iş parçacıklı uygulamalarda yarış koşulları oluşturabilir.

Konsol uygulamanızın Yayın sürümünü derlemek ve test etmek için, araç çubuğundaki derleme yapılandırmasını Hata Ayıklama'dan Yayın'e değiştirin.

sürümü vurgulanmış varsayılan Visual Studio araç çubuğu

F5 tuşuna bastığınızda veya Derleme menüsünden Çözüm Derleme'yi seçtiğinizde, Visual Studio uygulamanın Yayın sürümünü derler. Hata ayıklama sürümünü yaptığınız gibi test edebilirsiniz.

Sonraki adımlar

Bu öğreticide Visual Studio hata ayıklama araçlarını kullandınız. Sonraki öğreticide uygulamanın dağıtılabilir bir sürümünü yayımlayacaksınız.

Visual Studio kullanarak bir .NET konsol uygulaması yayımlama