Aracılığıyla paylaş


Visual Studio hata ayıklayıcısında Bellek pencerelerini kullanma (C#, C++, Visual Basic, F#)

Hata ayıklama sırasında Bellek penceresinde uygulamanızın kullandığı bellek alanı gösterilir.

Watch, Autos, Localsgibi hata ayıklayıcı pencereleri ve QuickWatch iletişim kutusu size 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 hatalarını ayıklamak için açık değildir. 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 Adres düzeyinde hata ayıklamayı etkinleştirAraçları>Seçenekleri (veya Hata Ayıklama>Seçenekleri) >Hata Ayıklama>Geneliçinde seçilmelidir.

Bellek penceresi açın:

  1. Adres düzeyinde hata ayıklamayı etkinleştir seçildiğinden emin olun ki Araçlar>Seçenekler (veya Hata Ayıklama>Seçenekler) >Hata Ayıklama>Genel.

  2. Hata ayıklamaya başlamak için yeşil oku seçin, F5tuşlarına basın veya Hata Ayıklama>Hata Ayıklamayı Başlatseçeneğini belirleyin.

  3. Hata Ayıklama altında>Windows>Bellek, Bellek 1, Bellek 2, Bellek 3veya Bellek 4seçeneğini belirleyin. (Visual Studio'nun bazı sürümleri yalnızca bir Bellek penceresi sunar.)

Birden çok pencere, bellek alanında farklı alanlar için görünümleri aynı anda tutmanıza olanak sağlar.

Bellek penceresinde dolaşın

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.

Çoğu senaryoda belirli bir bellek konumunu bulmak istersiniz.

Bellek konumu bulma

Bellek penceresinde, sürükleyip bırakma işlemini kullanarak veya adresi Adres alanına girerek belirtilen adrese anında gidebilirsiniz. Adresi alanı, alfasayısal adresleri ve e.User.NonroamableIdgibi adresler olarak değerlendirilen ifadeleri kabul eder.

Adresi alanındaki bir ifadenin hemen yeniden değerlendirilmesini zorlamak için, Otomatik Olarak Yeniden Değerlendir simgesindeki yuvarlak oku 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 kullanın:

  1. Herhangi bir hata ayıklayıcı penceresinde bir bellek adresi veya bellek adresi içeren bir işaretçi değişkeni seçin.

  2. Adresi veya işaretçiyi Bellek penceresine sürükleyip bırakın.

    Bu adres Adres alanında görünür ve Bellek penceresi bu adresi en üstte görüntüleyecek şekilde ayarlanır.

Bellek konumuna gitmek için Adres alanına bir konum girin:

  • Adresi veya ifadeyi Adres alanına yazın veya yapıştırın ve enter basın ya da Adres alanındaki açılan listeden seçin.

    Bu adres Adres alanında görünür ve Bellek penceresi bu adresi en üstte görüntüleyecek şekilde ayarlanır.

    Bellek penceresinin ekran görüntüsü.

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ştirin:

  • 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ştirin:

  • 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 seçin.

Uygulamanız çalışırken Bellek penceresinin içeriğinin değişmesini istemiyorsanız, canlı ifade değerlendirmesini kapatabilirsiniz.

Canlı değerlendirmeyi açma/kapatma:

  • Bellek penceresine sağ tıklayın ve bağlam menüsünde Otomatik olarak Yeniden Değerlendir 'i seçin.

    Not

    Canlı ifade değerlendirmesi, varsayılan olarak açık olan bir geçiş düğmesidir, bu nedenle Otomatik Olarak Yeniden Değerlendir'i seçmek, bu işlevi kapatır. Otomatik Olarak Yeniden Değerlendir seçildiğinde tekrar etkinleştirilir.

Bellek penceresinin üst kısmında araç çubuğunu gizleyebilir veya görüntüleyebilirsiniz. Araç çubuğu gizlendiğinde Adresi alanına veya diğer araçlara erişiminiz olmaz.

Araç çubuğu görünümünü değiştirin:

  • Bellek penceresinde sağ tıklayın ve bağlam menüsünden Araç Çubuğunu Göster 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 takip edin

  1. Bellek penceresindeki Adres alanına geçerli kapsamdaki bir işaretçi ifadesi girin. Kullandığınız dile göre, bunun dereferans edilmesi gerekebilir.

  2. Önce basın, sonragirin.

    Adımgibi bir hata ayıklama komutu kullandığınızda, Adresi alanında ve Bellek penceresinin üst kısmında görüntülenen bellek adresi, işaretçi değiştikçe otomatik olarak değişir.

Bellek işaretçilerini görüntüleme (.NET)

.NET nesnesinin içeriğini yığın anlık görüntüsünden alınan bir adres gibi bir bellek işaretçisine dayalı olarak görüntülemek, bunu {CLR}@Address gösterimini kullanarak yapabilirsiniz. Adres, 0x1D102A581B0 gibi bir bellek işaretçisi olmalıdır. Bellek penceresi Adres alanına {CLR}@Address notasyonunu kullanarak bellek işaretçisini girin. Alternatif olarak, Gözcü penceresini kullanarak 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, Yönetilen BellekHatalarını Ayıkla'yı seçin; bu, Bellek Kullanımı aracını açar. İlgilendiğiniz nesneye sağ tıklayın ve örnekleri görüntüle'yi seçin.