Öğ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. Hata ayıklayıcı özelliklerinin daha üst düzey bir görünümünü istiyorsanız, bkz . İlk olarak hata ayıklayıcıya bakma. Uygulamanızda hata ayıkladığınızda, bu genellikle uygulamanızı hata ayıklayıcı ekli olarak ç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 bakabilir, değerlerin ne zaman değiştiğini görmek için değişkenler üzerinde izlemeler ayarlayabilir, kodunuzun yürütme yolunu inceleyebilir, bir kod dalının çalışıp çalışmadığını görebilir vb. Bu alıştırma ilk kez kod hatalarını ayıklamaya çalıştıysanız, bu makaleye geçmeden önce mutlak yeni başlayanlar için hata ayıklamayı okumak isteyebilirsiniz.

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üzenleme ve devam etme özelliğini 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.
  • Hata ayıklayıcıda kodda adım adım ilerleyecek komutları öğ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 2022'nin yüklü olması ve .NET masaüstü geliştirme iş yükünün yüklü olması gerekir.

Visual Studio 2019'un yüklü olması ve .NET Core platformlar arası geliştirme iş yükünün yüklü olması gerekir.

Visual Studio'yu henüz yüklemediyseniz Visual Studio indirmeleri sayfasına giderek ücretsiz yükleyin.

İş yükünü yüklemeniz gerekiyorsa ancak Visual Studio'nuz zaten varsa Araçlar>Araçları ve Özellikleri Al...'e gidin ve bu da Visual Studio Yükleyicisi açar. Visual Studio Yükleyicisi başlatılır. .NET Core platformlar arası geliştirme iş yükünü ve ardından Değiştir'i seçin.

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

Bir proje oluştur

İlk olarak bir .NET Core konsol uygulaması projesi oluşturursunuz. Proje türü, herhangi bir şey eklemeden önce ihtiyacınız olan tüm şablon dosyalarıyla birlikte gelir!

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

  2. Başlangıç penceresinde Yeni proje oluştur'u seçin.

  1. Yeni proje oluştur penceresinde, arama kutusuna konsol yazın. Ardından, Dil listesinden C# öğesini seçin ve ardından Platform listesinden Windows'u seçin.

    Dil ve platform filtrelerini uyguladıktan sonra .NET Core için Konsol Uygulaması şablonunu ve ardından İleri'yi seçin.

    Screenshot of the C# template for the Console App.

    Not

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

  2. Yeni projenizi yapılandırın penceresinde Proje adı kutusuna GetStartedDebuggingyazın. Ardından İleri'yi seçin.

  3. Önerilen hedef çerçeveyi (.NET 8.0 veya Uzun vadeli destek) ve ardından Oluştur'u seçin.

  1. Yeni proje oluştur penceresinde, arama kutusuna konsol yazın. Ardından, Dil listesinden C# öğesini seçin ve ardından Platform listesinden Windows'u seçin.

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

    Screenshot of the 'Console Application' template in the 'Create a new project' window of Visual Studio 2022.

    Not

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

  2. Yeni projenizi yapılandırın penceresinde Proje adı kutusuna GetStartedDebuggingyazın. Ardından İleri'yi seçin.

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

Visual Studio yeni projenizi açar.

Uygulamayı oluşturma

Program.cs dosyasında, 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!

  1. Hata Ayıklama Araç Çubuğu'nda F5 (Hata AyıklamaYı > Başlat Hata Ayıklama) veya Hata Ayıklamayı Başlat düğmesine Image of the Start Debugging button. basın.

    F5 , uygulamayı uygulama işlemine eklenmiş hata ayıklayıcıyla başlatır, ancak şu anda kodu incelemek için özel bir şey yapmadık. Böylece uygulama yüklenir ve bu 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
    

    Bu öğreticide, hata ayıklayıcısını kullanarak bu uygulamaya daha yakından bakacak ve hata ayıklayıcı özelliklerine göz atacaksınız.

  2. Kırmızı durdurma düğmesine (Shift + F5) basarak hata ayıklayıcıyı durdurun. Image of the Stop Debugging button.

  3. Konsol penceresinde, konsol penceresini kapatmak için bir tuşa basın.

Çoğunlukla burada klavye kısayollarını kullanırız çünkü bu, 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 not edilir.

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

    Screenshot of the Debug Target button in the Standard toolbar of Visual Studio 2022.

    F5 , uygulamayı uygulama işlemine eklenmiş hata ayıklayıcıyla başlatır. Kodu incelemek için özel bir işlem yapmadığımız için 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 veya menü çubuğundan Hata Ayıklamayı> Durdur'u seçin.

    Screenshot of the Stop debugging button in the Debug toolbar of Visual Studio 2022.

  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. İşlev döngüsünde forMain , 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 Image of a breakpoint. görüntülenir.

    Kesme noktaları, güvenilir hata ayıklamanın en temel ve temel özelliklerinden biridir. Kesme noktası, değişkenlerin değerlerine, bellek davranışına veya bir kod dalının çalıştırılıp çalıştırılmadığına bakabilmeniz için Visual Studio'nun çalışan kodunuzu nerede askıya alması gerektiğini gösterir.

  2. F5'e veya Hata AyıklamayıBaşlat düğmesine basın. Screenshot of the Start Debugging button. Uygulama başlatılır ve hata ayıklayıcı, kesme noktasını ayarladığınız kod satırına kadar çalışır.

    Set and hit a breakpoint

    Sarı ok, hata ayıklayıcının duraklatıldığı deyimi temsil eder ve aynı noktada uygulama yürütmeyi de askıya alır (bu deyim henüz yürütülmedi).

    Uygulama henüz çalışmıyorsa, F5 hata ayıklayıcıyı başlatır ve ilk kesme noktasında durur. Aksi takdirde, F5 uygulamayı sonraki kesme noktasına çalıştırmaya devam eder.

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

  1. İşlev döngüsünde forMain , 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.

    Screenshot of a breakpoint in Visual Studio 2022.

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

  2. Hata ayıklamaya başlamak için F5'i seçin veya Standart araç çubuğunda Hedefte Hata Ayıkla düğmesini seçin ya da Hata Ayıklama araç çubuğunda Hata Ayıklamayı Başlat düğmesini veya menü çubuğundan Hata Ayıklamayı>Başlat Hata Ayıklama'yı 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.

    Screenshot showing a breakpoint in the code editor of Visual Studio 2022, with code execution paused at the breakpoint.

    Sarı ok, hata ayıklayıcının duraklatıldığı deyimi gösterir. Uygulama yürütme, deyimi henüz yürütülmemiş şekilde aynı noktada duraklatılır.

    Uygulama çalışmadığında F5, ilk kesme noktasına ulaşana kadar uygulamayı ç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 . Kesme noktalarını kullanma.

Çoğunlukla burada klavye kısayollarını kullanırız çünkü uygulamanızı hata ayıklayıcıda yürütme konusunda hızlı bir yöntemdir (menü komutları gibi eşdeğer komutlar parantez içinde gösterilir).

  1. Kod yürütme deyiminde name += letters[i] duraklatılırken değişkenin letters üzerine gelin ve varsayılan değeri olan dizideki char[10]ilk öğenin değerini görürsünüz.

    Değişkenleri incelemenize olanak sağlayan özellikler, hata ayıklayıcının en kullanışlı özelliklerinden biridir ve bunu yapmanın farklı yolları vardır. Genellikle bir sorunun hatalarını ayıklamaya çalıştığınızda, değişkenlerin belirli bir zamanda olmasını beklediğiniz değerleri depolayıp depolamadığını bulmaya çalışırsınız.

  2. Değişkenin letters içerdiği tüm öğeleri içeren özelliklerini görmek için değişkeni genişletin.

    Screenshot of the debugger paused at the 'name+= letters[I]' statement.

  3. Ardından değişkenin üzerine gelin ve değişkenin name geçerli değerini boş bir dize olarak görürsünüz.

  4. Yöntem çağrısına ilerlemek için F10 tuşuna iki kez basın (veya Hata Ayıkla > Adım Üzerinde'yi seçin) ve ardından F10'a SendMessage bir kez daha basın.

    F10, uygulama kodunuzda işlevlere veya yöntemlere geçmeden hata ayıklayıcıyı sonraki deyime ilerler (kod yürütülmeye devam eder). Yöntem çağrısında SendMessage F10'a basarak uygulama kodunu SendMessage atladık (şu anda ilgilenmemiş olabiliriz).

  5. Döngüde for birkaç kez yinelemek, kesme noktasında yeniden duraklatmak ve değerini denetlemek için her seferinde değişkenin name üzerine gelmek için F10 tuşuna (veya Hata Ayıklama>Adımı üzerinde) birkaç kez basın.

    An animated screenshot of the Visual Studio Debugger showing the effect of pressing F10 to

    Değişkenin değeri döngünün her yinelemesiyle for değişir ve ardından , frfreve gibi değerlerini fgösterir. Bu senaryoda hata ayıklayıcıyı döngüde daha hızlı ilerletmek için F5 tuşuna basabilirsiniz (veya Devam Hatalarını Ayıkla'yı>seçebilirsiniz), bu da sizi sonraki deyim yerine kesme noktasına ilerler.

    Genellikle, hata ayıklarken değişkenlerdeki özellik değerlerini denetlemek, depolamalarını beklediğiniz değerleri depolayıp depolamadıklarını görmek için hızlı bir yol istersiniz ve veri ipuçları bunu yapmak için iyi bir yoldur.

  6. Kod yürütme yöntemindeki for döngüde duraklatılmış olarak kalırken, yöntem çağrısında Main duraklatana kadar F11 tuşuna basın (veya Hata Ayıklama > Adımı'nıSendMessage seçin).

    Şu kod satırında olmanız gerekir:

    SendMessage(name, a[i]);

  7. Yöntemine geçmek için F11 tuşuna SendMessage bir kez daha basın.

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

    Screenshot of the execution pointer at the SendMessage method.

    F11, Adımla komutudur ve uygulama yürütme işlemini her seferinde bir deyimle ilerler. F11, yürütme akışını en ayrıntılı şekilde incelemenin iyi bir yoludur. Varsayılan olarak, hata ayıklayıcısı kullanıcı olmayan kodu atlar (daha fazla ayrıntı istiyorsanız, bkz . Yalnızca Kodum).

    Yöntemini incelemeyi SendMessage tamamladığınızı ve yöntemden çıkmak ancak hata ayıklayıcıda kalmak istediğinizi varsayalım. Bunu, Dışarı Adımla komutunu kullanarak yapabilirsiniz.

  8. Shift + F11 tuşuna basın (veya Hata Ayıklama > Adımı Dışarı).

    Bu komut, geçerli yöntem veya işlev dönene kadar uygulama yürütmeyi sürdürür (ve hata ayıklayıcıyı ilerletir).

    yönteminde döngüye forMain geri dönmeniz, yöntem çağrısında SendMessage duraklatılmış olmanız gerekir. Kodunuz arasında gezinmenin farklı yolları hakkında daha fazla bilgi için bkz . Hata ayıklayıcıda kodda gezinme.

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

    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. Değişkeni genişleterek letters tüm dizi öğelerini ve değerlerini görüntüleyin.

    Screenshot of a debugger data tip in Visual Studio 2022 that shows the element values for the 'letters' array variable.

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

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

    F10 , kodu hala yürütülse de işleve veya yöntemlere adım atmadan hata ayıklayıcıyı ilerletir. Bu şekilde, şu anda ilgilenmediğimiz yöntemdeki kodda SendMessage hata ayıklamayı atladık.

  5. Döngüde for birkaç kez yineleme yapmak için tekrar tekrar F10'ı seçin. Her döngü yinelemesi sırasında kesme noktasında duraklatın ve ardından değişkenin name üzerine gelerek veri ipucundaki değerini denetleyin.

    Screenshot of a debugger data tip in Visual Studio 2022 that shows the string value for the 'name' variable.

    Değişkenin değeri döngünün her yinelemesiyle for değişir ve ardından , frfreve gibi değerlerini fgösterir. Hata ayıklayıcıyı döngüde daha hızlı ilerletmek için bunun yerine F5'i seçin. Bu, sonraki deyim yerine kesme noktanıza ilerler.

  6. Kod yürütme yöntemin döngüsünde forMain duraklatılırken F11'i seçin veya Hata Ayıklama araç çubuğundan Adımla düğmesini seçin ya da yöntem çağrısına ulaşana SendMessage kadar menü çubuğundan Adımlama Hatalarını Ayıkla'yı>seçin.

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

    SendMessage(name, a[i]);

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

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

    Screenshot showing the execution pointer of the debugger within the 'SendMessage' method.

    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'i 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 . Yalnızca Kodum.

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

  8. Yöntemden SendMessage çı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>Adım Çıkışı'nı seçin.

    Step Out , uygulama yürütmeyi sürdürür ve geçerli yöntem veya işlev dönene kadar hata ayıklayıcıyı ilerletir.

    Sarı işaretçiyi yöntemin for döngüsünde Main , yöntem çağrısında SendMessage 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'i seçin.

  2. Kod düzenleyicisinde ekranı aşağı kaydırın ve yeşil Tıklamayla Çalıştır düğmesi Image of the Run to Click button. görünene kadar yöntemin üzerine Console.WriteLineSendMessage gelin. Düğmenin araç ipucunda "Yürütmeyi burada çalıştır" ifadesi gösterilir.

    Screenshot of the Run to Click button.

    Not

    Tıkla çalıştır düğmesi Visual Studio 2017'de yenidir. (Yeşil ok düğmesini görmüyorsanızHata ayıklayıcısını doğru yere ilerletmek için bu örnekteki F11 .)

  3. Tıklayacak Şekilde Çalıştır düğmesini seçin. Image of the Run to Click button.

    Hata ayıklayıcı yöntemine Console.WriteLine ilerler.

    Bu düğmeyi kullanmak, geçici kesme noktası ayarlamaya benzer. Tıklayarak Çalıştır, uygulama kodunun görünür bir bölgesinde hızla gezinmek için kullanışlıdır (herhangi bir açık dosyada seçebilirsiniz).

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

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

    Screenshot showing the Run to Click button in Visual Studio 2022.

  3. Tıklayacak Şekilde Çalıştır düğmesini seçin. Alternatif olarak, imleciniz deyimdeyken Console.WriteLineCtrl+F10 tuşlarına basın. Alternatif olarak, yöntem çağrısına Console.WriteLine sağ tıklayın ve bağlam menüsünden İmleç için Çalıştır'ı seçin.

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

    Tıklayarak Çalıştır düğmesinin kullanılması, geçici bir kesme noktası ayarlamaya benzer ve 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

Hata Ayıklama Araç Çubuğu'nda Yeniden Başlat düğmesini Image of the Restart App button. seçin (Ctrl + Shift + F5).

Yeniden Başlat'a bastığınızda, uygulama durdurulduğunda ve hata ayıklayıcı yeniden başlatıldığında zaman kazanır. Hata ayıklayıcı, kod yürütülerek isabet edilen ilk kesme noktasında duraklatılır.

Hata ayıklayıcı, döngü içinde daha önce ayarladığınız for kesme noktasında yeniden durur.

Uygulamanızı hata ayıklayıcıda baştan yeniden çalıştırmak için Ctrl+Shift+F5 tuşlarına basın veya Hata Ayıklama araç çubuğunda yeniden başlat düğmesini seçin ya da menü çubuğundan Yeniden Başlatma Hatalarını Ayıkla'yı> seçin.

Screenshot of the Restart button in the Debug toolbar of Visual Studio 2022.

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

Otomatik Ve Yerel Ayarlar pencereleriyle değişkenleri inceleme

  1. Kod düzenleyicisinin en altındaki Otomatikler penceresine bakın.

    Kapalıysa Windows>Otomatik Hata Ayıklama'yı>seçerek hata ayıklayıcıda duraklatılmış durumdayken açın.

    Otomatikler penceresinde değişkenleri ve geçerli değerlerini görürsünüz. OtomatikLer penceresi geçerli satırda veya önceki satırda kullanılan tüm değişkenleri gösterir (Dile özgü davranış için belgeleri denetleyin).

  2. Ardından, Otomatikler penceresinin yanındaki bir sekmedeki YerelLer penceresine bakın.

  3. değişkenini letters , içerdiği öğeleri gösterecek şekilde genişletin.

    Screenshot of the Locals Window in Visual Studio.

    Yerel Ayarlar penceresi, geçerli kapsamdaki değişkenleri, yani geçerli yürütme bağlamını gösterir.

Hata ayıklarken Otomatikler ve Yereller pencereleri değişken değerleri gösterir. Pencereler yalnızca hata ayıklama oturumu sırasında kullanılabilir. OtomatikLer penceresi, hata ayıklayıcının olduğ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ılırken, kod düzenleyicisinin en altındaki Otomatikler penceresini görüntüleyin.

    OtomatikLer penceresi kapalıysa, Ctrl+D, A'yı seçin veya menü çubuğundan Windows>OtomatikLerinde Hata Ayıkla'yı>seçin.

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

    Yerel Ayarlar penceresi kapalıysa, Ctrl+D, L'yi veya Windows>Yerel Ayarları Hatalarını Ayıkla'yı>seçin.

  3. Yerel Ayarlar penceresinde, dizi öğelerini ve değerlerini görmek için değişkeni genişletinletters.

    Screenshot of the Locals window in Visual Studio 2022, with the 'letters' array variable expanded.

Otomatik ve Yerel Ayarlar pencereleri hakkında daha fazla bilgi için bkz. Otomatik ve Yerel Ayarlar pencerelerindeki değişkenleri inceleme.

Saat ayarlama

Ana kod düzenleyicisi penceresinde değişkene name sağ tıklayın ve Gözcü Ekle'yi seçin.

Kod düzenleyicisinin alt kısmında Gözcü penceresi açılır. İzleme penceresini, göz kulak olmak istediğiniz bir değişkeni (veya ifadeyi) belirtmek için kullanabilirsiniz.

Artık değişkende name bir saat kümeniz var ve hata ayıklayıcıda ilerledikçe değerinin değiştiğini görebilirsiniz. Diğer değişken pencerelerinden farklı olarak, İzleme penceresi her zaman izlediğiniz değişkenleri gösterir (kapsam dışındayken gri görünür).

Kodda ilerletilirken göz kulak olmak istediğiniz bir değişkeni veya ifadeyi İzleme penceresine ekleyerek belirtebilirsiniz.

  1. Hata ayıklayıcı duraklatılırken değişkene name sağ tıklayın ve gözcü ekle'yi seçin.

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

  2. Değişkende name bir saat ayarladığınıza göre, her for döngü yinelemesinde değişkenin name değerinin değiştiğini görmek için kodunuzda adım adım ilerleyin.

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

Gözcü penceresi hakkında daha fazla bilgi için bkz. Gözcü pencereleri ile değişkenleri izleme.

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

  1. Kod yürütme döngüde for duraklatılırken, sağ alt bölmede varsayılan olarak açık olan Çağrı Yığını penceresini seçin.

    Kapalıysa, Windows>Çağrı Yığınında Hata Ayıkla'yı>seçerek hata ayıklayıcıda duraklatılmış durumdayken açın.

  2. Hata ayıklayıcının yönteminde duraklatılmış olduğunu görene kadar F11'iSendMessage birkaç kez seçin. Çağrı Yığını penceresine bakın.

    Screenshot of the Call Stack window in Visual Studio.

    Çağrı Yığını penceresi, yöntemlerin ve işlevlerin çağrılma sırasını gösterir. Üst satırda geçerli işlev (bu uygulamadaki SendMessage yöntem) gösterilir. İkinci satır, yönteminden Main çağrıldığını SendMessage vb. gösterir.

    Not

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

    Çağrı yığını, bir uygulamanın yürütme akışını incelemek ve anlamak için iyi bir yoldur.

    Bu kaynak koda bakmak için bir kod satırına çift tıklayarak hata ayıklayıcı tarafından denetlenen geçerli kapsamı da değiştirebilirsiniz. Bu eylem hata ayıklayıcıyı ilerletmez.

    Diğer işlemleri yapmak için Çağrı Yığını penceresindeki sağ tıklama menülerini de kullanabilirsiniz. Örneğin, belirtilen işlevlere kesme noktaları ekleyebilir, İmleçte Çalıştır'ı kullanarak hata ayıklayıcıyı ilerletebilir ve kaynak kodu inceleyebilirsiniz. Daha fazla bilgi için bkz . Nasıl yapılır: Çağrı Yığınını İnceleme.

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

  1. Hata ayıklayıcı döngüde for duraklatılırken, 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'yi seçin veya menü çubuğundan Windows>Çağrı Yığınında Hata Ayıkla'yı>seçin.

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

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

    Çağrı Yığını penceresinin üst satırı, yöntemi olan SendMessage geçerli işlevi gösterir. İkinci satırda yöntemin SendMessage yönteminden Main çağrıldığı gösterilir.

    Screenshot of the Call Stack window in Visual Studio 2022.

    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 denetlenen geçerli kapsamı değiştirebilirsiniz. Bu eylem hata ayıklayıcıyı ilerletmez.

    Diğer işlemleri yapmak için Çağrı Yığını penceresindeki sağ tıklama menülerini de kullanabilirsiniz. Örneğin, belirtilen işlevlere kesme noktaları ekleyebilir, İmleçte Ç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. Nasıl yapılır: Çağrı Yığınını İnceleme.

Yürütme akışını değiştirme

  1. Yöntemini çalıştırmak için F11 tuşuna Console.WriteLine iki kez basın.

  2. Hata ayıklayıcı yöntem çağrısında SendMessage duraklatılmış durumdaysa, fareyi kullanarak sarı oku veya yürütme işaretçisini (sol kenar boşluğunda) yakalayın ve işaretçiyi deyimine Console.WriteLine bir satır yukarı sürükleyin.

  3. F11 tuşuna basın.

    Hata ayıklayıcı yöntemini yeniden çalıştırır Console.WriteLine (bu eylemi konsol penceresi çıkışında görürsünüz).

    Yürütme akışını değiştirerek farklı kod yürütme yollarını test etme veya hata ayıklayıcıyı yeniden başlatmadan kodu yeniden çalıştırma gibi işlemler yapabilirsiniz.

    Uyarı

    Genellikle bu özelliğe dikkat etmeniz gerekir ve araç ipucunda bir uyarı görürsünüz. Başka uyarılar da görebilirsiniz. İşaretçiyi taşımak uygulamanızı önceki bir uygulama durumuna geri döndüremez.

  4. Uygulamayı çalıştırmaya devam etmek için F5 tuşuna basın.

    Bu öğreticiyi tamamladıktan sonra tebrikler!

Hata ayıklama sırasında uygulamanızın akışını değiştirmek için yürütme işaretçisini taşıyabilirsiniz.

  1. Hata ayıklayıcısı döngüdeki SendMessagefor yöntem çağrısında duraklatıldıktan sonra yönteme geçmek SendMessage ve yürütdükten sonra yöntemi geçmek Console.WriteLine için F11'i üç kez seçin.

    Hata ayıklayıcısı artık yönteminin son kapanış ayracında SendMessage duraklatılır.

  2. Fareyi kullanarak sarı oku veya yürütme işaretçisini (sol kenar boşluğunda) yakalayın ve işaretçiyi bir satır yukarı sürükleyin.

    Hata ayıklayıcısı artık deyimine Console.WriteLine geri döndü.

  3. F11'i seçin.

    Hata ayıklayıcı yöntemini yeniden çalıştırır Console.WriteLine ve konsol penceresi çıkışında yinelenen bir satır görürsünüz.

  4. Uygulamayı çalıştırmaya devam etmek için F5'i seçin.

Yürütme akışını değiştirerek farklı kod yürütme yollarını test etme veya hata ayıklayıcıyı yeniden başlatmadan kodu yeniden çalıştırma gibi işlemler yapabilirsiniz.

Uyarı

Bu özelliği dikkatli kullanın. Yürütme işaretçisinin araç ipucunda istenmeyen sonuçlarla ilgili bir uyarı görürsünüz. Başka uyarılar da görebilirsiniz. Yürütme işaretçisini taşımak uygulamanızı önceki bir duruma geri döndüremez.

Yürütme akışını değiştirme hakkında daha fazla bilgi için bkz . Yürütme akışını değiştirmek için işaretçiyi taşıma.

Bu öğreticiyi tamamladıktan sonra tebrikler!

Sonraki adımlar

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.