Visual Studio hata ayıklayıcısında Bellek pencerelerini kullanma (C#, C++, Visual Basic, F#)
Hata ayıklama sırasında Bellek penceresi uygulamanızın kullandığı bellek alanını gösterir.
Watch, Autos, Locals ve QuickWatch iletişim kutusu gibi hata ayıklayıcı pencereleri, bellekteki belirli konumlarda depolanan değişkenleri gösterir. Bellek penceresinde genel resim gösterilir. Bellek görünümü, diğer pencerelerde iyi görüntülenmeyen büyük veri parçalarını (arabellekler veya büyük dizeler gibi) incelemek için kullanışlıdır.
Bellek penceresi verileri görüntülemekle sınırlı değildir. Veri, kod ve atanmamış bellekteki rastgele çöp bitleri de dahil olmak üzere bellek alanındaki her şeyi görüntüler.
Bellek penceresi betik veya SQL hata ayıklama için kullanılamaz. Bu diller bellek kavramını tanımaz.
Bellek penceresi açma
Diğer hata ayıklayıcı pencerelerinde olduğu gibi Bellek pencereleri de yalnızca bir hata ayıklama oturumu sırasında kullanılabilir.
Önemli
Bellek pencerelerini etkinleştirmek için, Araçlar>Seçenekler (veya Hata Ayıklama>Seçenekleri)> Hata Ayıklama Genel bölümünde Adres düzeyinde hata ayıklamayı>etkinleştir'in seçilmesi gerekir.
Bellek penceresi açmak için
Araçlar>Seçenekler (veya Hata Ayıklama>Seçenekleri)> Hata Ayıklama Genel bölümünde Adres düzeyinde hata ayıklamayı>etkinleştir'in seçili olduğundan emin olun.
Yeşil oku seçerek, F5 tuşuna basarak veya Hata AyıklamaYı Başlat Hata Ayıklama'yı>seçerek hata ayıklamaya başlayın.
Windows>Belleğinde Hata Ayıklama'nın>altında Bellek 1, Bellek 2, Bellek 3 veya Bellek 4'i seçin. (Visual Studio'nun bazı sürümleri yalnızca bir tane sunarBellek penceresi.)
Bellek penceresinde gezinme
Bilgisayarın adres alanı büyüktür ve Bellek penceresinde kaydırarak yerinizi kolayca kaybedebilirsiniz.
Pencerenin alt kısmında daha yüksek bellek adresleri görüntülenir. Daha yüksek bir adresi görüntülemek için aşağı kaydırın. Daha düşük bir adresi görüntülemek için yukarı kaydırın.
Sürükle ve bırak seçeneğini kullanarak veya Adresi Adres alanına girerek Bellek penceresinde belirtilen adrese anında gidebilirsiniz. Adres alanı alfasayısal adresleri ve gibi adresler olarak e.User.NonroamableId
değerlendirilen ifadeleri kabul eder.
Adres alanındaki bir ifadenin hemen yeniden değerlendirilmesini zorlamak için, yuvarlatılmış oku Otomatik Olarak Yeniden Değerlendir simgesini seçin.
Varsayılan olarak, Bellek penceresi Adres ifadelerini canlı ifadeler olarak değerlendirir ve uygulama çalışırken yeniden değerlendirilir. Canlı ifadeler, örneğin bir işaretçi değişkeni tarafından dokunulan belleği görüntülemek için yararlı olabilir.
Bellek konumuna gitmek için sürükleyip bırakma özelliğini kullanmak için:
Herhangi bir hata ayıklayıcı penceresinde bir bellek adresi veya bellek adresi içeren bir işaretçi değişkeni seçin.
Adresi veya işaretçiyi Bellek penceresine sürükleyip bırakın. Bu adres daha sonra Adres alanında görünür ve Bellek penceresi bu adresi en üstte görüntüleyecek şekilde ayarlanır.
Adres alanına girerek bir bellek konumuna gitmek için:
- Adres alanına adresi veya ifadeyi yazın veya yapıştırın ve Enter tuşuna basın ya da Adres alanındaki açılan listeden seçin. Bellek penceresi, bu adresi en üstte görüntüleyecek şekilde ayarlanır.
Bellek penceresini özelleştirme
Varsayılan olarak, bellek içeriği onaltılık biçimde 1 baytlık tamsayılar olarak görünür ve pencere genişliği gösterilen sütun sayısını belirler. Bellek penceresinin bellek içeriğini gösterme biçimini özelleştirebilirsiniz.
Bellek içeriğinin biçimini değiştirmek için:
- Bellek penceresine sağ tıklayın ve bağlam menüsünden istediğiniz biçimleri seçin.
Bellek penceresindeki sütun sayısını değiştirmek için:
- Sütunlar alanının yanındaki açılan oku seçin ve görüntülenecek sütun sayısını seçin veya pencere genişliğine göre otomatik ayarlama için Otomatik'i seçin.
Uygulamanız çalışırken Bellek penceresinin içeriğinin değişmesini istemiyorsanız canlı ifade değerlendirmesini kapatabilirsiniz.
Canlı değerlendirmeyi değiştirmek için:
Bellek penceresine sağ tıklayın ve bağlam menüsünde Otomatik Olarak Yeniden Değerlendir'i seçin.
Dekont
Canlı ifade değerlendirmesi bir geçiştir ve varsayılan olarak açıktır, bu nedenle Yeniden Değerlendir seçildiğinde Otomatik olarak kapatılır. Otomatik Olarak Yeniden Değerlendir'i seçtiğinizde yeniden açılır.
Bellek penceresinin üst kısmında araç çubuğunu gizleyebilir veya görüntüleyebilirsiniz. Araç çubuğu gizlendiğinde Adres alanına veya diğer araçlara erişiminiz olmaz.
Araç çubuğu görünümünü değiştirmek için:
- Bellek penceresine sağ tıklayın ve bağlam menüsünde Araç Çubuğunu Göster'i seçin. Araç çubuğu, önceki durumuna bağlı olarak görünür veya kaybolur.
Bellekte işaretçiyi izleme (C/C++)
Yerel kod uygulamalarında kayıt adlarını canlı ifade olarak kullanabilirsiniz. Örneğin, yığını izlemek için yığın işaretçisini kullanabilirsiniz.
Bellekte bir işaretçiyi izlemek için:
Bellek penceresi Adres alanına geçerli kapsamda bir işaretçi ifadesi girin. Dile bağlı olarak, başvuruyu kaldırmanız gerekebilir.
Enter'a basın.
Adım gibi bir hata ayıklama komutu kullandığınızda, işaretçi değiştikçe Adres alanında ve Bellek penceresinin üst kısmında görüntülenen bellek adresi otomatik olarak değişir.
Bellek işaretçilerini görüntüleme (.NET)
Yığın anlık görüntüsünden alınan adres gibi bir bellek işaretçisini temel alan bir .NET nesnesinin içeriğini görüntülemek istiyorsanız, bunu gösterimi kullanarak {CLR}@Address
yapabilirsiniz. Adres, 0x1D102A581B0 gibi bir bellek işaretçisi olmalıdır. Bellek penceresi Adres alanına gösterimi kullanarak {CLR}@Address
bellek işaretçisini girin. Alternatif olarak, gözcü penceresini kullanarak bir saat eklemek için aynı gösterimi kullanabilirsiniz.
Yığın anlık görüntüsünden bellek işaretçisi adresini almak için yığın dökümünü açın, Bellek Kullanımı aracını açan Yönetilen Bellekte Hata Ayıkla'yı seçin. İlgilendiğiniz nesneye sağ tıklayın ve Örnekleri görüntüle'yi seçin.