Aracılığıyla paylaş


Visual Studio hata ayıklayıcısında değişkenleri inceleyin ve değerleri döndürün

Bir sorunu ayıklamaya çalıştığınızda, genellikle değişkenlerin belirli bir uygulama durumunda sahip olmalarını beklediğiniz değerleri depolayıp depolamadığını bulmaya çalışırsınız. Hata ayıklayıcının en kullanışlı özelliklerinden bazıları, değişkenleri incelemenize izin veren özelliklerdir.

Bu makalede, Visual Studio'da hata ayıklayıcıyı kullanarak değişkenleri nasıl inceleyeceğiniz ve dönüş değerlerini nasıl görüntüleyeceğiniz gösterilmektedir. Hata ayıklayıcı, bu görevleri gerçekleştirmek için aşağıdakiler de dahil olmak üzere birkaç kullanışlı yol sağlar:

  • Kod düzenleyicisinde, veri ipuçlarını ve satır içi dönüş değerlerini görüntüleyebilirsiniz
  • Hata ayıklayıcı pencerelerinde (Otomatikler, Yereller ve İzleme pencereleri), değişken değerlerini görüntüleyebilirsiniz
  • Görselleştiricilerde büyük dizeleri veya karmaşık .NET nesnelerini görüntüleyebilirsiniz

Bu özellikler yalnızca hata ayıklama sırasında kullanılabilir. Hata ayıklama oturumunun nasıl başlatılacağını öğrenmek için bkz: Hata ayıklamayı başlatma ve kesme moduna girme.

Uyarı

Kodda hata ayıklamayı ilk kez denemiyorsanız, bu makaleye geçmeden önce Yeni Başlayanlar için Hata Ayıklama ve Hata Ayıklama teknikleri ve araçları'nı okumak isteyebilirsiniz.

Kod düzenleyicisinde değişkenleri görüntüleme

Genellikle, hata ayıklarken, kod düzenleyicisindeki nesnelerdeki özellik değerlerini denetlemenin hızlı bir yolunu istersiniz ve veri ipuçları bunu yapmanın iyi bir yoludur.

Hata ayıklayıcıda duraklatılırken fareyle bir nesnenin üzerine gelin ve değerini veya varsayılan özellik değerini görürsünüz.

Bir Veri İpucunu Görüntüle

Bir Veri İpucunu Görüntüle

Değişkenin özellikleri varsa, nesnesini genişleterek tüm özelliklerini görebilirsiniz.

Veri ipuçlarını kullanma hakkında ayrıntılı bilgi için bkz. Veri ipuçlarında veri değerlerini görüntüleme.

Kod düzenleyicisinde yöntem çağrılarının satır içi dönüş değerlerini görüntüleme

.NET ve C++ kodunda, bir yöntem çağrısının üzerine veya dışına çıktığınızda dönüş değerlerini inceleyebilirsiniz ve bu, dönüş değeri yerel bir değişkende depolanmadığında yararlı olabilir. Bir yöntem parametre olarak veya başka bir yöntemin dönüş değeri olarak kullanılabilir.

Visual Studio 2022 sürüm 17.12'den başlayarak, yöntem çağrılarının dönüş değerlerini yalnızca Autos penceresinde değil, satır içinde görüntüleyebilirsiniz.

Yöntem çağrılarının dönüş değerlerini gösteren ekran görüntüsü.

Copilot etkinleştirildiğinde, dönüş değeri için veri ipucunda görünen Copilot'a Sor düğmesini kullanarak satır içi dönüş değeriyle ilgili hedefli yardım da alabilirsiniz.

Copilot simgesiyle yöntem çağrılarının dönüş değerlerini gösteren ekran görüntüsü.

Değişkenleri izlemeye al

İzlemek istediğiniz bir değişken (veya ifadeyi) belirtmek için izleme penceresini kullanabilirsiniz.

Hata ayıklama sırasında kod düzenleyicisinde bir nesneye sağ tıklayın ve İzleme Ekle'yi seçin. Bir İzleme penceresi açılır.

Gözcü Penceresi

Gözcü Penceresi

Bu örnekte, nesne üzerinde ayarlanmış bir saatiniz var ve hata ayıklayıcıda hareket ettikçe değerinin değiştiğini görebilirsiniz. Diğer değişken pencerelerinden farklı olarak, İzleme pencereleri her zaman izlemekte olduğunuz değişkenleri gösterir (kapsam dışında olduklarında gri görünürler).

Ayrıntılı bilgi için bkz. Watch ve QuickWatch Pencerelerini kullanarak saat ayarlama.

Yapay zeka yardımı alma

Copilot'unuz varsa, kod düzenleyicisinde veya Otomatikler veya Yereller pencerelerinde değişkenlere bakarken yapay zeka yardımı alabilirsiniz. Hata ayıklarken bir değişkene sağ tıklayın ve Copilot'a SorEkran Görüntüsü Copilot'a Sor buton. düğmesini tıklayın. Bu senaryoda Copilot sorunuzun bağlamını zaten biliyor, bu nedenle sohbette bağlamı kendiniz sağlamanız gerekmez. Daha fazla bilgi için bkz. Copilot ile hata ayıklama.

Hata ayıklayıcı pencerelerindeki değişkenleri inceleme (Otomatikler ve Yereller)

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. Otomatikler penceresi, hata ayıklayıcının duraklatıldığı geçerli deyimin etrafında 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.

  • Otomatikler penceresini açmak için, hata ayıklama sırasındaWindows>Autos'taHata Ayıkla'yı> seçin veya Ctrl+Alt+V A> tuşuna basın.

    Otomatikler penceresi C#, Visual Basic, C++ ve Python kodu için kullanılabilir, ancak JavaScript veya F# için kullanılamaz.

  • Yereller penceresini açmak için, hata ayıklama sırasındaWindows>Yerel ÖğelerindeHata Ayıkla'yı> seçin veya Alt+4'e basın.

Genişletilebilir diziler ve nesneler Autos (Otomatikler) ve Locals (Yereller ) pencerelerinde gösterilir. Görünümü alanları ve özellikleri gösterecek şekilde genişletmek için değişken adının solundaki oku seçin. Aşağıda, Yereller penceresindeki bir System.IO.FileStream nesne örneği verilmiştir:

Dosyanın System.IO.FileStream değerine ayarlanmış olduğu Yereller penceresinin ekran görüntüsü.

Dosyanın System.IO.FileStream değerine ayarlanmış olduğu Yereller penceresinin ekran görüntüsü.

Yereller veya Otomatikler penceresindeki kırmızı değer, değerin son değerlendirmeden bu yana değiştiği anlamına gelir. Değişiklik önceki bir hata ayıklama oturumundan veya penceredeki değeri değiştirdiğiniz için olabilir.

Hata ayıklayıcı pencerelerindeki varsayılan sayısal biçim ondalık sayıdır. Onaltılık olarak değiştirmek için, Yereller veya Otomatikler penceresine sağ tıklayın ve Onaltılık Görüntü'yü seçin. Bu değişiklik tüm hata ayıklayıcı pencerelerini etkiler.

Autos (Otomatikler) veya Locals (Yereller) penceresinde değişken değerlerini düzenleme

Otomatikler veya Yereller pencerelerinde çoğu değişkenin değerlerini düzenlemek için, değeri çift tıklatın ve yeni değeri girin.

Bir değer için ifade girebilirsiniz, örneğin a + b. Hata ayıklayıcı en geçerli dil ifadelerini kabul eder.

Yerel C++ kodunda, bir değişken adının bağlamını nitelemeniz gerekebilir. Daha fazla bilgi için bkz: Bağlam işleci (C++).

Dikkat

Değerleri ve ifadeleri değiştirmeden önce sonuçları anladığınızdan emin olun. Bazı olası sorunlar şunlardır:

  • Bazı ifadelerin değerlendirilmesi bir değişkenin değerini değiştirebilir veya programınızın durumunu başka bir şekilde etkileyebilir. Örneğin, değerlendirmek var1 = ++var2 hem ve var1var2'nin değerini değiştirir. Bu ifadelerin yan etkileri olduğu söyleniyor. Yan etkiler, farkında değilseniz beklenmedik sonuçlara neden olabilir.

  • Kayan nokta değerlerinin düzenlenmesi, kesirli bileşenlerin ondalıktan ikiliye dönüştürülmesi nedeniyle küçük hatalara neden olabilir. Görünüşte zararsız bir düzenleme bile, kayan nokta değişkenindeki bazı bitlerde değişikliklere neden olabilir.

Autos (Otomatikler) veya Locals (Yereller) penceresinde arama yapın

Otomatikler veya Yereller penceresinin Ad, Değer ve Tür sütunlarında, her pencerenin üzerindeki arama çubuğunu kullanarak anahtar sözcükleri arayabilirsiniz. Bir arama yapmak için ENTER tuşuna basın veya oklardan birini seçin. Devam eden bir aramayı iptal etmek için arama çubuğundaki "x" simgesini seçin.

Bulunan eşleşmeler arasında gezinmek için sol ve sağ okları (sırasıyla Shift+F3 ve F3) kullanın.

Yereller penceresinde aramanın ekran görüntüsü Yereller

Yereller penceresinde aramanın ekran görüntüsü Yereller

Aramanızı daha fazla veya daha az kapsamlı hale getirmek için, iç içe geçmiş nesnelerde kaç düzey derinlikte arama yapmak istediğinizi seçmek için Otomatikler veya Yereller penceresinin üst kısmındaki Daha Derin Ara açılır listesini kullanın.

Autos (Otomatikler) veya Locals (Yereller) penceresinde özellikleri sabitleme

Uyarı

Bu özellik .NET Core 3.0 veya üzeri için desteklenir.

Sabitlenebilir Özellikler aracıyla Otomatikler ve Yereller pencerelerindeki nesneleri özelliklerine göre hızlı bir şekilde inceleyebilirsiniz. Bu aracı kullanmak için, bir özelliğin üzerine gelin ve görüntülenen raptiye simgesini seçin veya sağ tıklayın ve ortaya çıkan bağlam menüsünde Üyeyi Favori Olarak Sabitle seçeneğini belirleyin. Bu, söz konusu özelliği nesnenin özellik listesinin en üstüne çıkarır ve özellik adı ve değeri Değer sütununda görüntülenir. Bir özelliğin sabitlemesini kaldırmak için raptiye simgesini tekrar seçin veya bağlam menüsünde Üyeyi Favori Olarak Kaldır seçeneğini belirleyin.

Yereller penceresindeki Pin özelliklerinin ekran görüntüsü.

Ayrıca, Otomatikler veya Yereller pencerelerinde nesnenin özellik listesini görüntülerken özellik adlarını değiştirebilir ve sabitlenmemiş özellikleri filtreleyebilirsiniz. Otomatikler veya Yerel Ayarlar pencerelerinin üzerindeki araç çubuğunda bulunan düğmeleri seçerek her bir seçeneğe erişebilirsiniz.

Sık kullanılan özellikleri filtrele'nin ekran görüntüsü.

Özellik adlarını değiştir'in ekran görüntüsü.

Otomatikler veya Yereller penceresinin bağlamını değiştirme

İstediğiniz bir işlevi, iş parçacığını veya işlemi seçmek için Hata Ayıklama Konumu araç çubuğunu kullanabilirsiniz ve bu da Otomatikler ve Yereller pencerelerinin bağlamını değiştirir.

Hata Ayıklama Konumu araç çubuğunu etkinleştirmek için, araç çubuğu alanının boş bir bölümüne tıklayın ve açılan listeden Hata Ayıkla'yı seçin veyaAraç Çubukları>Hata Ayıklama KonumunuGörüntüle'yi> seçin.

Bir kesme noktası ayarlayın ve hata ayıklamaya başlayın. Kesme noktasına isabet edildiğinde yürütme duraklatılır ve konumu Hata Ayıklama Konumu araç çubuğunda görebilirsiniz.

Hata Ayıklama Konumu araç çubuğunun ekran görüntüsü.

Hata Ayıklama Konumu araç çubuğunun ekran görüntüsü.

Autos penceresindeki dil farklılıkları (C#, C++, Visual Basic, Python)

Farklı kod dilleri, Otomatikler penceresinde farklı değişkenler görüntüler.

  • C# ve Visual Basic'te, Otomatikler penceresi geçerli veya önceki satırda kullanılan herhangi bir değişkeni görüntüler. Örneğin, C# veya Visual Basic kodunda aşağıdaki dört değişkeni bildirin:

         public static void Main()
         {
            int a, b, c, d;
            a = 1;
            b = 2;
            c = 3;
            d = 4;
         }
    

    Satırda c = 3;bir kesme noktası ayarlayın ve hata ayıklayıcıyı başlatın. Yürütme duraklatıldığında, Otomatikler penceresi şunları görüntüler:

    Otomatikler penceresinin, c değerinin 0 olarak ayarlandığı ekran görüntüsü.

    Otomatikler penceresinin, c değerinin 0 olarak ayarlandığı ekran görüntüsü.

    Satır c = 3 henüz yürütülmediği için değeri c 0'dır.

  • C++'da Autos penceresi, yürütmenin duraklatıldığı geçerli satırdan en az üç satırda kullanılan değişkenleri görüntüler. Örneğin, C++ kodunda altı değişken bildirin:

         void main() {
             int a, b, c, d, e, f;
             a = 1;
             b = 2;
             c = 3;
             d = 4;
             e = 5;
             f = 6;
         }
    

    Satırda e = 5; bir kesme noktası ayarlayın ve hata ayıklayıcıyı çalıştırın. Yürütme durduğunda, Otomatikler penceresi şunları görüntüler:

    Autos penceresinin ekran görüntüsü, 3 değeriyle int c'yi gösteren satır vurgulanmıştır.

    Autos penceresinin ekran görüntüsü, 3 değeriyle int c'yi gösteren satır vurgulanmıştır.

    Satır e = 5 henüz yürütülmediği için değişken e başlatılmamıştır.

Otomatikler penceresinde dönüş değerlerini görüntüleme

Aşağıdaki örnekte, bu C# kodu iki işlevin dönüş değerlerini ekler:

static void Main(string[] args)
{
    int a, b, c, d;
    a = 1;
    b = 2;
    c = 3;
    d = 4;
    int x = sumVars(a, b) + subtractVars(c, d);
}

private static int sumVars(int i, int j)
{
    return i + j;
}

private static int subtractVars(int i, int j)
{
    return j - i;
}

Autos penceresinde ve subtractVars() method çağrılarının sumVars() dönüş değerlerini görmek için:

  1. Satırda int x = sumVars(a, b) + subtractVars(c, d); bir kesme noktası ayarlayın.

  2. Hata ayıklamayı başlatın ve yürütme kesme noktasında duraklatıldığında Adım At'ı seçin veya F10 tuşuna basın. Otomatikler penceresinde aşağıdaki dönüş değerlerini görmeniz gerekir:

    Autos dönüş değeri C# ekran görüntüsü.

Değişkenleri incelemek için bir görselleştirici açın

Visual Studio'da hata ayıklarken, verilerin incelenmesini kolaylaştıran yerleşik görselleştiricilerle büyük dizeleri veya karmaşık nesneleri görüntüleyebilirsiniz. Örneğin:

  • Dize görselleştiricisi, bir veri ipucu veya hata ayıklayıcı penceresi için çok uzun olan metin, XML, HTML ve JSON dizelerini gösterir. Ayrıca hatalı biçimlendirilmiş dizeleri belirlemenize de yardımcı olabilir. Daha fazla bilgi için bkz: Dize görselleştiricisinde dizeleri görüntüleme.
  • DataSet ve IEnumerable görselleştiricileri, .NET koleksiyon nesnelerini tablosal bir görselleştiricide gösterir. Daha fazla bilgi için bkz: Visual Studio'da Tablo görselleştiricileri) nesneleri.

Görselleştiriciler Otomatikler pencerelerinde, veri ipuçlarında ve diğer hata ayıklayıcı pencerelerinde görünür.

Uyarı

Görselleştiricide XAML veya WPF UI öğelerini incelemeniz gerekiyorsa, hata ayıklarken XAML özelliklerini incele bölümüne bakın veya WPF ağacı görselleştiricisini kullanma bölümüneveya bakın.

Bir görselleştiriciyi açmak için hata ayıklama sırasında duraklatılmış olmanız gerekir. Desteklenen bir görselleştirici değerine sahip bir değişkenin üzerine gelin ve büyüteç simgesi VisualizerIcon'u seçin.

Dize görselleştiricisini açma

Dize görselleştiricisini açma