Aracılığıyla paylaş


Öğretici: Visual Studio kullanarak C# kodunda hata ayıklamayı öğrenin

Bu makalede, adım adım izlenecek yolda Visual Studio hata ayıklayıcısının özellikleri tanıtılmaktadır. Uygulamanızda hata ayıklama, genellikle uygulamanızı hata ayıklayıcı bağlı iken çalıştırdığınız anlamına gelir. Bu görevi yaptığınızda, hata ayıklayıcısı kodunuzun çalışırken ne yaptığını görmek için birçok yol sağlar. Kodunuzda adım adım ilerleyebilir ve değişkenlerde depolanan değerlere bakabilirsiniz. Değerlerin ne zaman değiştiğini görmek için değişkenler üzerinde saat ayarlayabilirsiniz. Kod dalının çalışıp çalışmadığını görmek için kodunuzun yürütme yolunu inceleyebilirsiniz.

Eğer bu makale sizin kodda hata ayıklama konusunda ilk deneyiminizse, bkz. Tamamen yeni başlayanlar için hata ayıklama. Hata ayıklayıcısı özelliklerinin daha üst düzey bir görünümünü istiyorsanız bkz. Visual Studio hata ayıklayıcısına genel bakış.

Tanıtım uygulaması C# olsa da, özelliklerin çoğu C++, Visual Basic, F#, Python, JavaScript ve Visual Studio tarafından desteklenen diğer diller için geçerlidir. F# Düzenle ve devam et'i desteklemez. F# ve JavaScript OtomatikLer penceresini desteklemez . Ekran görüntüleri C# dilindedir.

Bu öğreticide şunları yapacaksınız:

  • Hata ayıklayıcıyı başlatın ve kesme noktalarına basın
  • Kodda adım adım ilerlemenizi sağlayacak komutları hata ayıklayıcıda öğrenin
  • Veri ipuçlarında ve hata ayıklayıcı pencerelerinde değişkenleri inceleme
  • Çağrı yığınını inceleme

Önkoşullar

Visual Studio'yu ve .NET masaüstü geliştirme iş yükünü yüklemiş olmanız gerekir.

Visual Studio'yu yüklemeniz gerekiyorsa Visual Studio indirmeleri sayfasından ücretsiz olarak edinin.

Visual Studio'nuz zaten varsa ancak .NET masaüstü geliştirme iş yükü yüklü değilse Araçlar Araçları>ve Özellikleri Al... bölümüne gidin. Visual Studio Yükleyicisi'nde .NET masaüstü geliştirme iş yükünü ve ardından Değiştir'i seçin.

Proje oluşturma

İlk olarak bir C#/.NET konsol uygulaması projesi oluşturun. Proje şablonu, herhangi bir şey eklemeden önce ihtiyacınız olan tüm dosyaları içerir.

  1. Visual Studio'yu açın. Başlangıç penceresi açık değilse Dosya >seçin.

  2. Başlangıç penceresinde yeni proje oluştur seçin.

  3. Yeni proje oluştur penceresinde, arama kutusuna konsol girin. Ardından, Dil listesinden C# seçin ve ardından Platform listesinden windows seçin.

    Dil ve platform filtrelerini uyguladıktan sonra Konsol Uygulaması şablonunu seçin ve ardından İleriseçin.

    Visual Studio'nun 'Yeni proje oluştur' penceresindeki 'Konsol Uygulaması' şablonunun ekran görüntüsü.

    Not

    Konsol Uygulaması şablonunu görmüyorsanız, Yeni proje oluştur penceresinden yükleyebilirsiniz. Aradığınızı bulamıyor musunuz? mesajında Daha fazla araç ve özellik yükle bağlantısını seçin. Ardından Visual Studio Yükleyicisi'nde .NET masaüstü geliştirme iş yükünü seçin.

  4. Yeni projenizi yapılandırın penceresinde, GetStartedDebugging ifadesini, Proje adı kutusuna girin. Ardından İleriöğesini seçin.

  5. Ek bilgiler penceresinde, Çerçeve açılan menüsünde .NET 10.0'ın seçili olduğundan emin olun ve oluştur'u seçin.

  1. Visual Studio'yu açın. Başlangıç penceresi açık değilse Dosya >seçin.

  2. Başlangıç penceresinde yeni proje oluştur seçin.

  3. Yeni proje oluştur penceresinde, arama kutusuna konsol girin. Ardından, Dil listesinden C# seçin ve ardından Platform listesinden windows seçin.

    Dil ve platform filtrelerini uyguladıktan sonra Konsol Uygulaması şablonunu seçin ve ardından İleriseçin.

    Visual Studio 2022'nin 'Yeni proje oluştur' penceresindeki 'Konsol Uygulaması' şablonunun ekran görüntüsü.

    Not

    Konsol Uygulaması şablonunu görmüyorsanız, Yeni proje oluştur penceresinden yükleyebilirsiniz. Aradığınızı bulamıyor musunuz? mesajında Daha fazla araç ve özellik yükle bağlantısını seçin. Ardından Visual Studio Yükleyicisi'nde .NET masaüstü geliştirme iş yükünü seçin.

  4. Yeni projenizi yapılandırın penceresinde, GetStartedDebugging ifadesini, Proje adı kutusuna girin. Ardından İleriöğesini seçin.

  5. Ek Bilgiler penceresinde, Framework açılır menüsünde .NET 8.0 seçili olduğundan emin olun ve ardından Oluşturseçeneğine tıklayın.

Visual Studio yeni projenizi açar.

Uygulamayı oluşturma

Program.csiçinde, varsayılan kodun tümünü aşağıdaki kodla değiştirin:

using System;

class ArrayExample
{
   static void Main()
   {
      char[] letters = { 'f', 'r', 'e', 'd', ' ', 's', 'm', 'i', 't', 'h'};
      string name = "";
      int[] a = new int[10];
      for (int i = 0; i < letters.Length; i++)
      {
         name += letters[i];
         a[i] = i + 1;
         SendMessage(name, a[i]);
      }
      Console.ReadKey();
   }

   static void SendMessage(string name, int msg)
   {
      Console.WriteLine("Hello, " + name + "! Count to " + msg);
   }
}

Hata ayıklayıcıyı başlatın!

Çoğunlukla, bu makalede klavye kısayolları kullanılır. Hata ayıklayıcı komutlarını yürütmenin hızlı bir yoludur. Araç çubuğu veya menü komutları gibi eşdeğer komutlar da kullanılabilir.

  1. Hata ayıklayıcıyı başlatmak için F5seçin veya Standart araç çubuğunda Hedef Hata Ayıkla düğmesini seçin ya da Hata Ayıklama araç çubuğunda Hata Ayıklamayı Başlat düğmesini seçin veya menü çubuğundan Hata Ayıklama>Başlat seçin.

    Visual Studio 2022'nin Standart araç çubuğundaki Hedefte Hata Ayıkla düğmesinin ekran görüntüsü.

    F5, uygulamayı uygulama işlemine eklenmiş hata ayıklayıcıyla başlatır. Hata ayıklamaya başladığınızda uygulama tamamlanmaya kadar çalışır ve konsol çıkışını görürsünüz.

    Hello, f! Count to 1
    Hello, fr! Count to 2
    Hello, fre! Count to 3
    Hello, fred! Count to 4
    Hello, fred ! Count to 5
    Hello, fred s! Count to 6
    Hello, fred sm! Count to 7
    Hello, fred smi! Count to 8
    Hello, fred smit! Count to 9
    Hello, fred smith! Count to 10
    
  2. Hata ayıklayıcıyı durdurmak için, Shift+F5 tuşlarına basın veya Hata Ayıklama araç çubuğunda hata ayıklamayı durdur düğmesini seçin veya menü çubuğundan Hata Ayıklama >seçin.

    Visual Studio 2022'nin Hata Ayıklama araç çubuğunda hata ayıklamayı durdur düğmesinin ekran görüntüsü.

  3. Konsol penceresinde, konsol penceresini kapatmak için herhangi bir anahtarı seçin.

Kesme noktası ayarlama ve hata ayıklayıcıyı başlatma

  1. for işlevinin Main döngüsünde, aşağıdaki kod satırında sol kenar boşluğuna tıklayarak bir kesme noktası ayarlayın:

    name += letters[i];

    Kesme noktasını ayarladığınız yerde kırmızı bir daire görüntülenir.

    Visual Studio 2022'de kesme noktasının ekran görüntüsü.

    Kesme noktaları, güvenilir hata ayıklamanın temel özelliklerinden biridir. Visual Studio'nun çalışan kodunuzu duraklatmasını istediğiniz kesme noktaları ayarlayabilirsiniz. Değişkenlerin değerlerine veya belleğin davranışına bakabilir veya kod dalının çalışıp çalışmadığını öğrenebilirsiniz.

  2. Hata ayıklamayı başlatmak için F5seçin veya Standart araç çubuğunda Hata Ayıklama Hedefi düğmesini seçin ya da Hata Ayıklama araç çubuğunda Hata Ayıklamayı Başlat düğmesini seçin veya menü çubuğundan Hata Ayıklama>Hata Ayıklamayı Başlat seçin. Uygulama başlatılır ve hata ayıklayıcı, kesme noktasını ayarladığınız kod satırına kadar çalışır.

    Visual Studio 2022'nin kod düzenleyicisinde kesme noktasını gösteren ve kesme noktasında kod yürütmenin duraklatıldığı ekran görüntüsü.

    Sarı ok, hata ayıklayıcının durduğu ifadeyi gösterir. Uygulama yürütmesi aynı noktada duraklatılır ve deyim henüz yürütülmemiştir.

    Uygulama çalışmadığında F5, uygulamayı ilk kesme noktasına ulaşana kadar çalıştıran hata ayıklayıcıyı başlatır. Uygulama bir kesme noktasında duraklatılırsa F5 , sonraki kesme noktasına ulaşana kadar uygulamayı çalıştırmaya devam eder.

    Kesme noktaları, ayrıntılı olarak incelemek istediğiniz kod satırını veya bölümünü bildiğinizde yararlı bir özelliktir. Koşullu kesme noktaları gibi ayarlayabileceğiniz farklı kesme noktası türleri hakkında daha fazla bilgi için bkz. Doğru kesme noktası türünü kullanma.

  1. kod yürütme name += letters[i] deyiminde duraklatılırken, dizi boyutunu ve öğe türünü gösteren bir veri ipucunu görmek için fareyle letters değişkeninin üzerine gelin char[10].

    Not

    Hata ayıklayıcının en kullanışlı özelliklerinden biri, bir değişkeni inceleyebilmesidir. Genellikle bir sorunun hatalarını ayıklamaya çalışırken değişkenlerin belirli bir zamanda beklediğiniz değerlere sahip olup olmadığını bulmaya çalışırsınız. Veri ipuçlarını görüntülemek, bunu denetlemenin iyi bir yoludur.

  2. Tüm dizi öğelerini ve değerlerini görüntülemek için letters değişkenini genişletin.

    Visual Studio 2022'de 'letters' dizi değişkeni için öğe değerlerini gösteren hata ayıklayıcısı veri ipucunun ekran görüntüsü.

  3. Boş bir dize olan geçerli değerini görmek için name değişkeninin üzerine gelin.

  4. Hata ayıklayıcıyı sonraki deyime ilerletmek için F10'u seçin veya Hata Ayıklama araç çubuğunda Adımla düğmesini seçin veya menü çubuğundan Hata Ayıkla> Üzerine Adımla'yı seçin. yöntem çağrısından geçmek için SendMessage iki kez daha seçin.

    F10, kodun çalışmasına rağmen işlev veya yöntemlere adım atmadan hata ayıklama işlemini ilerletir. Bu şekilde, şu anda ilgili olmayan SendMessage yöntemindeki kodda hata ayıklamayı atladınız.

  5. for döngüsünü birkaç kez yinelemek için F10 tekrar tekrar seçin. Her döngü yinelemesi sırasında kesme noktasında duraklatın ve ardından veri ipucundaki değerini denetlemek için name değişkeninin üzerine gelin.

    Visual Studio 2022'de 'name' değişkeninin dize değerini gösteren hata ayıklayıcısı veri ipucunun ekran görüntüsü.

    Değişkenin değeri, for döngüsünün her yinelemesiyle değişir ve fdeğerlerini gösterir, sonra fr, sonra frevb. Hata ayıklayıcıyı döngüde daha hızlı ilerletmek için bunun yerine F5 seçin; bu, sonraki deyim yerine kesme noktanıza ilerler.

  6. Kod yürütme, for yönteminin Main döngüsünde duraklatılırken, F11'i seçin veya Hata Ayıklama araç çubuğundan Adımla düğmesini seçin veya yöntem çağrısına ulaşana kadar menü çubuğundan >SendMessage Adımla'yı seçin.

    Hata ayıklayıcısı şu kod satırında duraklatılmalıdır:

    SendMessage(name, a[i]);

  7. SendMessage yöntemine geçmek için F11 yeniden seçin.

    Sarı işaretçi SendMessage yöntemine ilerler.

    'SendMessage' yöntemindeki hata ayıklayıcının yürütme işaretçisini gösteren ekran görüntüsü.

    F11 kodunuzun yürütme akışını daha ayrıntılı incelemenize yardımcı olur. Yöntem çağrısından bir yönteme geçmek için F11öğesini seçin. Varsayılan olarak, hata ayıklayıcısı kullanıcı olmayan yöntemlere adımlamayı atlar. Kullanıcı olmayan kodda hata ayıklama hakkında bilgi edinmek için bkz. Just My Code .

    SendMessage yönteminin hata ayıklamasını tamamladıktan sonra main yönteminin for döngüsüne geri dönmeye hazırsınız.

  8. SendMessage yönteminden çıkmak için, Shift+F11'i seçin veya Hata Ayıklama araç çubuğundaki Dışarı Adımla düğmesini seçin veya menü çubuğundan Hata Ayıklama >Ayıkla'yı seçin.

    Step Out, uygulamanın yürütülmesini sürdürür ve geçerli yöntem veya işlev dönene kadar hata ayıklayıcının ilerlemesini sağlar.

    sarı işaretçiyi for yönteminin Main döngüsünde SendMessage yöntem çağrısında duraklatılmış olarak görürsünüz. Kodunuz arasında gezinmenin farklı yolları hakkında daha fazla bilgi için bkz. hata ayıklayıcıda kodda gezinme.

  1. Kesme noktasına yeniden ilerlemek için F5 seçin.

  2. Kod düzenleyicisinde, Console.WriteLine yöntemindeki SendMessage yöntem çağrısının üzerine gelin ve Tıklayıp Çalıştır düğmesi görünene kadar bekleyin. Düğmenin araç ipucunda "Yürütmeyi buraya kadar çalıştır" ifadesi gösterilir.

    Visual Studio 2022'de Tıkla çalıştır düğmesini gösteren ekran görüntüsü.

  3. Tıklamak için Çalıştır düğmesini seçin. Alternatif olarak, imleciniz Console.WriteLine deyimindeyken Ctrl+F10öğesini seçin. Alternatif olarak, Console.WriteLine yöntem çağrısına sağ tıklayın ve bağlam menüsünden İmleçte Çalıştır seçin.

    Hata ayıklayıcı Console.WriteLine yöntem çağrısına ilerler.

    Tıkla ve Çalıştır düğmesinin kullanılması, geçici bir kesme noktası ayarlamaya benzer. Bu yaklaşım, açık bir dosyadaki uygulama kodunuzun görünür bir bölgesinde hızla gezinmek için kullanışlıdır.

Uygulamanızı hızlı bir şekilde yeniden başlatın

Uygulamanızı hata ayıklayıcıda baştan yeniden çalıştırmak için, Ctrl+Shift+F5öğesini seçin veya Hata Ayıklama araç çubuğunda yeniden başlat düğmesini seçin veya menü çubuğundan Hata Ayıkla >seçin.

Visual Studio 2022'nin Hata Ayıklama araç çubuğundaki Yeniden Başlat düğmesinin ekran görüntüsü.

Yeniden Başlat hata ayıklayıcıyı durdurur ve bir adımda yeniden başlatır. Hata ayıklayıcı yeniden başlatıldığında, daha önce for döngüsü içinde ayarladığınız kesme noktasına kadar çalışır ve ardından duraklar.

Otomatik Ve Yerel Ayarlar pencereleriyle değişkenleri inceleme

Otomatik ve Yerel Değişkenler pencereleri, hata ayıklarken değişken değerleri gösterir. Pencereler yalnızca hata ayıklama oturumu sırasında kullanılabilir. Autos penceresi, hata ayıklayıcının bulunduğu geçerli satırda ve önceki satırda kullanılan değişkenleri gösterir. Locals penceresi, genellikle geçerli işlev veya yöntem olan yerel kapsamda tanımlanan değişkenleri gösterir.

  1. Hata ayıklayıcı duraklatıldığında, kod düzenleyicisinin alt kısmındaki Otomatikler penceresini görüntüleyin.

    Otomatik penceresi kapalıysa, Ctrl+D, Aveya menü çubuğundan Hata Ayıkla>Windows>Otomatik'i seçin.

  2. Hata ayıklayıcı hala duraklatılmış durumdayken, Otomatik penceresinin yanındaki bir sekmede Locals penceresini görüntüleyin.

    Locals penceresi kapalıysa, Ctrl+D, Ltuşlarına basın veya Hata Ayıkla>Windows>Yerellerseçeneğini seçin.

  3. Locals penceresinde, dizi öğelerini ve değerlerini görmek için letters değişkenini genişletin.

    Visual Studio 2022'de 'letters' dizi değişkeni genişletilmiş Yerel pencerenin ekran görüntüsü.

Otomatik veYerel Ayarlar pencereleri hakkında daha fazla bilgi için bkz. Değişkenleri ve dönüş değerlerini inceleme.

Saat ayarlama

İzlemek istediğiniz bir değişkeni veya ifadeyi, kodda ilerlerken İzleme penceresine ekleyerek belirtebilirsiniz.

  1. Hata ayıklayıcı duraklatılırken, name değişkenine sağ tıklayın ve İzleme Ekleseçin.

    İzleme penceresi varsayılan olarak kod düzenleyicisinin en altında açılır.

  2. name değişkenine bir izleyici ayarladıktan sonra, kodunuzda ilerleyerek for değişkeninin değerinin her name döngü yinelemesiyle değiştiğini görün.

    Diğer değişken pencerelerinden farklı olarak, İzle penceresi her zaman izlediğiniz değişkenleri gösterir. Kapsam dışında olan değişkenler kullanılamaz olarak görüntülenir.

İzle penceresi hakkında daha fazla bilgi için İzleme pencereleriyledeğişkenleri izlemeye bakın.

Çağrı yığınını inceleme

Çağrı Yığını, uygulamanızın yürütme akışını anlamanıza yardımcı olan bir araçtır. Yöntemlerin ve işlevlerin çağrılma sırasını gösterir.

  1. Hata ayıklayıcı for döngüsünde duraklatılmış durumdayken, kod düzenleyicisinin sağ alt bölmesinde varsayılan olarak açılan Çağrı Yığını penceresini görüntüleyin.

    Çağrı Yığını penceresi kapalıysa, Ctrl+D, Cöğesini seçin veya menü çubuğundan Hata Ayıklama>Windows>Çağrı Yığını seçeneğini seçin.

    Çağrı Yığını penceresinde geçerli Main yönteminde sarı işaretçiyi görürsünüz.

  2. yönteminde hata ayıklayıcının duraklatılmış olduğunu görene kadar birkaç kez SendMessage seçin.

    Çağrı Yığını penceresinin üst satırı, geçerli işlev olan SendMessage yöntemini gösterir. İkinci satır, SendMessage yönteminin Main yönteminden çağrıldığını gösterir.

    Visual Studio 2022'de Çağrı Yığını penceresinin ekran görüntüsü.

    Not

    Çağrı Yığını penceresi, Eclipse gibi bazı IDE'lerdeki Hata Ayıklama perspektifine benzer.

    Çağrı Yığını penceresinde, kaynak koda gitmek için bir kod satırına çift tıklayarak hata ayıklayıcı tarafından incelenen mevcut kapsamı değiştirebilirsiniz. Bu eylem hata ayıklayıcıyı ilerletmez.

    Diğer işlemleri yapmak için Çağrı Yığını penceresinden sağ tıklama menülerini de kullanabilirsiniz. Örneğin, belirtilen işlevlere kesme noktaları ekleyebilir, İmleçÇalıştır'ı kullanarak hata ayıklayıcıyı ilerletebilir veya kaynak koduna gidebilirsiniz.

Çağrı Yığını hakkında daha fazla bilgi için bkz. Çağrı yığınını görüntüleme.

Sonraki adım

Bu öğreticide hata ayıklayıcıyı başlatmayı, kodda adım adım ilerleyip değişkenleri incelemeyi öğrendiniz. Daha fazla bilgi için bağlantılarla birlikte hata ayıklayıcısı özelliklerine üst düzey bir bakış elde etmek isteyebilirsiniz.