Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
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.
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.
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.
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 Sor 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:
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 vevar1
var2
'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.
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.
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.
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.
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:Satır
c = 3
henüz yürütülmediği için değeric
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:Satır
e = 5
henüz yürütülmediği için değişkene
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:
Satırda
int x = sumVars(a, b) + subtractVars(c, d);
bir kesme noktası ayarlayın.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:
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 seçin.
İlgili içerik
- Hata ayıklama nedir?
- hata ayıklama teknikleri ve araçları
- Hata ayıklamaya ilk bakış
- Hata ayıklayıcı pencereleri