Aracılığıyla paylaş


Veri kesme noktası hatalarını giderme (.NET)

Bu makale, "Değer Değiştiğinde Kesme" kullandığınızda oluşan yaygın hataları çözmenize yardımcı olur.

"Veri kesme noktası ayarlanamıyor" hatalarını tanılama

Önemli

Yönetilen veri kesme noktaları .NET Core 3.0, .NET 5.0.3 ve sonraki sürümlerde desteklenir. En son sürümü buradan indirebilirsiniz.

Yönetilen veri kesme noktalarını kullandığınızda aşağıdaki hatalar oluşabilir. Bu makalede bu hataların neden gerçekleştiği açıklanır ve bunları çözmek için olası çözümler veya geçici çözümler sağlanır.

  • Hedef işlem tarafından kullanılan .NET sürümü veri kesme noktalarını desteklemez. Veri kesme noktaları x86 veya x64 üzerinde çalışan .NET Core 3.x veya .NET 5.0.3+ gerektirir.

    Yönetilen veri kesme noktaları desteği .NET Core 3.0'da başladı. Şu anda .NET Framework'te, 3.0'ın altındaki .NET Core sürümlerinde veya 5.0.3'ün altındaki .NET sürümlerinde desteklenmez.

    Çözüm: Bu hatayı çözmek için projenizi .NET Core 3.x veya .NET 5+ sürümüne yükseltin.

  • Değer yönetilen yığında bulunamaz ve izlenemez.

    • Yığında bildirilen değişkenler.

      İşlev çıktıktan sonra bu değişkenler geçersiz olacağından yığında oluşturulan değişkenler için veri kesme noktalarının ayarlanması desteklenmez.

      Geçici çözüm: Değişkenin kullanıldığı satırlarda kesme noktaları ayarlayın.

    • Açılan menüden genişletilmemiş bir değişkende "Değer değiştiğinde kesme".

      Hata ayıklayıcının, izlemek istediğiniz alanı içeren nesneyi dahili olarak bilmesi gerekir. Çöp Toplayıcı nesnenizi yığın içinde taşıyabilir, bu nedenle hata ayıklayıcının izlemek istediğiniz değişkeni barındıran nesneyi bilmesi gerekir.

      Geçici çözüm: Veri kesme noktası ayarlamak istediğiniz nesnenin içinde bir yöntem kullanıyorsanız şu adımları izleyin:

      a. İlgilendiğiniz nesnenin yöntemini içeren çerçeveye gidin.
      b. Yerel Ayarlar, Otomatikler veya İzleme penceresini açın.
      c. Nesneyi bulun ve alanlarını göstermek için genişletin.
      d. Veri kesme noktası ayarlamak istediğiniz alana sağ tıklayın ve bağlam menüsünden Değer değiştiğinde kes'i seçin.

  • Veri kesme noktaları statik alanlar veya statik özellikler için desteklenmez.

    Statik alanlar ve özellikler şu anda desteklenmiyor. Bu özellik ilginizi çekiyorsa geri bildirim sağlayın.

  • Yapıların alanları ve özellikleri izlenemez.

    Yapıların alanları ve özellikleri şu anda desteklenmemektedir. Bu özellik ilginizi çekiyorsa geri bildirim sağlayın.

  • Özellik değeri değişti ve artık izlenemiyor.

    Bir özellik çalışma zamanı sırasında hesaplanma şeklini değiştirebilir. Bu durumda, özelliğin bağımlı olduğu değişken sayısı artar ve donanım sınırlamasını aşabilir. Daha fazla bilgi için şu hataya bakın: "Özellik, donanım tarafından izlenebilenden daha fazla belleğe bağımlıdır."

  • özelliği, donanım tarafından izlenebilenden daha fazla belleğe bağımlıdır.

    Her mimaride destekleyebileceğiniz belirli sayıda bayt ve donanım veri kesme noktası vardır ve veri kesme noktası ayarlamak istediğiniz özellik bu sınırı aşmıştır. Kullandığınız mimari için kaç donanım tarafından desteklenen veri kesme noktası ve bayt kullanılabilir olduğunu öğrenmek için Veri kesme noktası donanım sınırlamaları tablosuna bakın.

    Geçici çözüm: Özelliği içinde değişebilecek bir değer üzerinde veri kesme noktası ayarlayın.

  • Eski C# ifade değerlendiricisi kullanılırken Veri Kesme Noktaları desteklenmez.

    Veri kesme noktaları yalnızca eski olmayan C# ifade değerlendiricisinde desteklenir.

    Çözüm: Eski C# ifade değerlendiricisini devre dışı bırakmak için şu adımları izleyin:

    1. Visual Studio'da Hata Ayıkla menüsüne gidin.
    2. Seçenekleri belirleyin.
    3. Hata Ayıklama>Genel'e gidin.
    4. Eski C# ve VB ifade değerlendiricilerini kullan seçeneğinin işaretini kaldırın.
  • X sınıfı, yalnızca ona özgü verilerde veri kesme noktalarının kullanılmasını engelleyen özel bir hata ayıklayıcısı görünümüne sahiptir.

    Veri kesme noktaları yalnızca hedef işlem (hata ayıklanan uygulama) tarafından oluşturulan bellekte desteklenir. Veri kesme noktasının ayarlandığı bellek, DebuggerTypeProxy özniteliği tarafından oluşturulan bir nesneye veya hedef işlemin parçası olmayan başka bir nesneye ait olarak işaretlendi.

    Geçici çözüm: Nesnenin DebuggerTypeProxy görünümü yerine Ham Görünümü genişletin ve veri kesme noktasını ayarlayın. Bu, veri kesme noktasının özniteliği tarafından DebuggerTypeProxy oluşturulan bir nesnenin sahip olduğu bellekte olmadığını garanti eder.

Veri kesme noktası donanım sınırlamaları

Programınızın çalıştırıldığı mimari (platform yapılandırması) sınırlı sayıda donanım veri kesme noktasına sahiptir. Aşağıdaki tabloda, mimari başına kaç yazmaç kullanılabilecek olduğu gösterilir.

Mimari Donanım tarafından desteklenen veri kesme noktası sayısı Maksimum bayt boyutu
x86 4 4
x64 4 8
ARM 1 4
ARM64 2 8

Geri bildirimde bulunun

Bu özellik hakkında herhangi bir sorun veya öneri için, IDE'de veya Geliştirici Topluluğu Yardım Geri Bildirim>Gönderme Sorun Bildirme yoluyla bize bildirin>.

Ayrıca bkz.