Visual Studio Hata Ayıklayıcısı'nda Kesme Noktaları sorunlarını giderme

Şunlar için geçerlidir: Visual Studio

Kesme noktası uyarıları

Hata ayıklama sırasında kesme noktasının iki olası görsel durumu vardır:

  • Hata ayıklayıcısı hedef işlemde bir kesme noktasını başarıyla ayarladıysa düz kırmızı daire.
  • Kesme noktası devre dışıysa veya kesme noktasını ayarlamaya çalışırken bir uyarı oluşuyorsa boş bir daire (temanıza bağlı olarak koyu gri veya beyaz dolgulu).

Farkı belirlemek için kesme noktasının üzerine gelin ve bir uyarı olup olmadığına bakın. Aşağıdaki iki bölümde önemli uyarılar ve bunların nasıl düzeltileceğini açıklanmaktadır.

"Bu belge için Hiçbir Simge yüklenmedi"

Hata ayıklarken Windows>Modüllerinde Hata Ayıklama'ya> gidin ve modülünüzün yüklenip yüklenmediğini denetleyin.

  • Modülünüz yüklendiyse sembollerin yüklenip yüklenmediğini görmek için Simge Durumu sütununu denetleyin.
    • Simgeler yüklenmediyse, sorunu tanılamak için simge durumunu denetleyin:

      Modüller penceresinde simgelerin yüklenmediği modüle sağ tıklayın ve Simge Yükleme Bilgileri... öğesini seçin.

      Modüller penceresindeKi Sembol Yükleme Bilgileri'nin ekran görüntüsü.

      Sembolleri yükleme hakkında daha fazla bilgi için bkz . Simge Belirtme (.pdb) ve Kaynak Dosyalar.

    • Simgeler yüklenirse, PDB kaynak dosyalarınız hakkında bilgi içermez. Birkaç olası neden şunlardır:

      • Kaynak dosyalarınız yakın zamanda eklendiyse modülün güncel bir sürümünün yüklendiğini onaylayın.
      • /PDBSTRIPPED bağlayıcı seçeneğini kullanarak soyuldu PDB'ler oluşturulabilir. Kaldırılan PDB'ler kaynak dosya bilgilerini içermez. Soyuldu PDB ile değil, tam bir PDB ile çalıştığınızı onaylayın.
      • PDB dosyası kısmen bozuk. Dosyayı silin ve sorunu çözmeye çalışmak için modülün temiz bir derlemesini çalıştırın.
  • Modülünüz yüklenmemişse nedenini bulmak için aşağıdakileri denetleyin:
    • Doğru işlemde hata ayıkladığınızı onaylayın.
    • Doğru kodda hata ayıkladığınızı denetleyin. Hata ayıklayıcının hata ayıklamak için yapılandırıldığı kod türünü İşlemler penceresinde bulabilirsiniz (Windows>İşlemlerinde Hata Ayıklama).> Örneğin, C# kodunda hata ayıklamaya çalışıyorsanız, hata ayıklayıcınızın uygun .NET türü ve sürümü için yapılandırıldığını onaylayın (örneğin, Yönetilen (v4*) ile Yönetilen (v2*/v3*) ve Yönetilen (CoreCLR)).

"… geçerli kaynak kodu yerleşik sürümden farklı..."

Kaynak dosya değiştiyse ve kaynak artık hata ayıkladığınız kodla eşleşmiyorsa, hata ayıklayıcı kodda varsayılan olarak kesme noktaları ayarlamaz. Normalde bu sorun, bir kaynak dosya değiştirildiğinde, ancak kaynak kod yeniden derlenmemişse oluşur. Bu sorunu çözmek için projeyi yeniden derleyin. Derleme sistemi projenin henüz güncel olmadığını düşünse bile, proje sistemini yeniden derlemeye zorlayabilirsiniz. Kaynak dosyayı yeniden kaydederek veya derlemeden önce derleme çıktısını temizleyerek projeyi yeniden oluşturun.

Nadir senaryolarda, eşleşen kaynak koduna sahip olmadan hata ayıklamak isteyebilirsiniz. Kaynak koduyla eşleşmeden hata ayıklamak kafa karıştırıcı bir hata ayıklama deneyimine yol açabilir, bu nedenle nasıl devam etmek istediğinizden emin olun.

Bu güvenlik denetimlerini devre dışı bırakmak için seçeneklerden birini izleyin:

  • Tek bir kesme noktasını değiştirmek için düzenleyicideki kesme noktası simgesinin üzerine gelin ve ayarlar (dişli) simgesini seçin. Düzenleyiciye bir göz atma penceresi eklenir. Göz atma penceresinin üst kısmında kesme noktasının konumunu gösteren bir köprü bulunur. Kesme noktası konumunun değiştirilmesine izin vermek için köprüyü seçin ve Kaynak kodun özgün konumdan farklı olmasını sağlayın seçeneğini işaretleyin.
  • Bu ayarı tüm kesme noktaları için değiştirmek için Hata Ayıklama>Seçenekleri ve Ayarları'na gidin. Hata Ayıklama/Genel sayfasında, Özgün sürümle tam olarak eşleşen kaynak dosyaları gerektir seçeneğini temizleyin. Hata ayıklamayı bitirdiğinizde bu seçeneği yeniden etkinleştirmeyi unutmayın.

Kesme noktası başarıyla ayarlandı (uyarı yok), ancak isabet etmedi

Bu bölümde, hata ayıklayıcısı hiçbir uyarı görüntülemediğinde sorunları gidermeye yönelik bilgiler sağlanır; kesme noktası etkin hata ayıklama sırasında düz kırmızı bir dairedir, ancak kesme noktasına isabet alınmaz.

Denetlenecek birkaç şey şunlardır:

  1. Kodunuz birden fazla işlemde veya birden fazla bilgisayarda çalışıyorsa, doğru işlemde veya bilgisayarda hata ayıkladığınızdan emin olun.
  2. Kodunuzun çalıştığını onaylayın. Kodunuzun çalışıp çalışmadığını test etmek için kesme noktasını ayarlamaya çalıştığınız kod satırına System.Diagnostics.Debugger.Break (C#/VB) veya __debugbreak (C++) çağrısı ekleyin ve projenizi yeniden oluşturun.
  3. İyileştirilmiş kodda hata ayıklaması yapıyorsanız kesme noktanızın ayarlandığı işlevin başka bir işlevin içine alınmadığından emin olun. Önceki Debugger.Break denetimde açıklanan test, bu sorunu test etmek için de çalışabilir.
  4. İşlem senaryolarına eklemek için doğru kod türünde hata ayıkladığınızdan emin olun (örneğin, betik kodu ile .NET Framework ve .NET 5+). Araştırmak için, İşleme Ekle iletişim kutusundaki Ekle seçeneğini işaretleyin ve gerekirse kod türünü değiştirmek için Seç'i seçin.

Bir kesme noktasını sildim, ancak hata ayıklamaya yeniden başladığımda kesme noktasına basmaya devam ediyorum

Hata ayıklama sırasında bir kesme noktasını sildiyseniz, hata ayıklamaya bir sonraki başladığınızda kesme noktasına yeniden basabilirsiniz. Bu kesme noktasına çarpmayı durdurmak için kesme noktasının tüm örneklerinin Kesme Noktaları penceresinden kaldırıldığından emin olun.