Visual Studio'da koşullu kesme noktaları nasıl ayarlanır?


133

Visual Studio'da koşullu kesme noktaları ayarlamanın kolay bir yolu var mı?

Bir kesme noktasına yalnızca bir değişkenin değeri bir şey olduğunda vurmak istersem, bunu nasıl yapabilirim?


11
Express sürümünün bu işlevselliğe sahip olmadığını unutmayın.
Alexei Levenkov

1
Express 2015 kullanıyorum ve koşullu kesme noktaları için yeteneği var
mark.monteiro

1
2017'nin topluluk baskısında da koşullu kesme noktaları var
PentiumPro200

Yanıtlar:


174

Her zamanki gibi bir kesme noktası ayarlayın. Sağ tıklayın. Koşul'u tıklayın.


1
VS 2015'te koşulları ayarlamak için kesme noktasının üzerine gelin ve dişli simgesini tıklayın
mark.monteiro

Yani, sağ tıklayın, koşulu ayarlayın, "Kesme noktası durumu başarısız oldu" hatası aldınız mı?
Toby Caulk

1
Yanıt ayrıca koşullu ifadeler için sözdizimi veya bilgilendirici bir bağlantı içermelidir.
Andrew

50

Express sürümünü kullanırken bunu deneyebilirsiniz:

#if DEBUG
    if( fooVariable == true )
        System.Diagnostics.Debugger.Break();
#endif

if deyimi sürüm derleme kesme noktasının mevcut olmayacağından emin olursa.


3
Bu, büyük bir performans / zaman tasarrufu avantajına sahiptir. Sadece birkaç saniye süren bir programımdaki (sadece yaklaşık 3,5 milyon) her potansiyel int 'id'i tekrarlıyordum. Koşullu kesme noktasını kullanmaya çalışıyordum, ancak koşullu bir dalda olmadığından, yürütme hızını birkaç dakika sonra hata ayıklama oturumunu sonlandıracağım noktaya kadar yavaşlattı. Derlenmiş kesme noktasını kullanmak onu anında yaptı.
Goldfish Sandviç

35

Visual Studio, koşullu kesme noktaları için birçok seçenek sunar:

Bunlardan herhangi birini ayarlamak için

  1. Bir kesme noktası ayarlayın.
  2. Kesme noktasını sağ tıklatın ve açılır menüde size uygun bir seçenek belirleyin.

Bu seçenekler aşağıdaki gibidir:

  • Eğer tedarik (seçtiğinizden bir kod ifadesi dayalı bir koşul, ayarlayabilirsiniz Durum açılan menüden). Örneğin, bunu foo == 8veya başka bir ifadeyi belirtebilirsiniz .
  • Kesme noktalarını belirli sayıda vurulduktan sonra tetikleyebilirsiniz. ( açılır menüden İsabet Sayısı'nı seçin). Bu, aslında belirli bir isabet sayısını kırmakla sınırlı olmadığınız için oynamak için eğlenceli bir seçenektir, ancak birkaç senaryo için de seçenekleriniz vardır. Olasılıkları keşfetmek için size bırakacağım.
  • İşlem Kimliği, iş parçacığı kimliği ve makine adı üzerinde filtreler ayarlayabilirsiniz ( açılır menüden Filtre'yi seçin)

16

Bunu yapmanın başka bir yolu (veya express kullanıyorsanız) koşulu koda ekleyin:

if(yourCondition)
{
    System.Diagnostics.Debugger.Break();
}

9
  1. Satırdaki kesme noktasını ayarlama
  2. RED top üzerinde sağ clik
  3. Koşullu kırılma noktası seçildi
  4. Kurulum koşulu

8

Gerçek durumu yazmak zor bir iş olabilir, bu yüzden

  1. Düzenli bir kesme noktası belirleyin .
  2. Kesme noktası ilk kez vurulana kadar kodu çalıştırın .
  3. Kullanım Anlık pencereyi için (hata ayıklama> Pencereler> Anında) ifadenizi test etmek .
  4. Kesme noktasını sağ tıklatın, Koşul'u tıklatın ve ifadenize yapıştırın .

Anlık pencereyi kullanmanın avantajları:

  • Bu sahiptir IntelliSense'i .
  • İfade değerlendirilirken ifadedeki değişkenlerin kapsamda olduğundan emin olabilirsiniz .
  • İfadenizin doğru veya yanlış döndüğünden emin olabilirsiniz .

Bu örnek, kod "Ayar" adındaki bir tabloya başvurduğunda kesilir:

table.GetTableName().Contains("Setting")

5

Normalde yaptığınız gibi bir kesme noktası oluşturun, kırmızı noktayı sağ tıklayın ve "koşul" u seçin.


4
  1. Her zamanki gibi bir kesme noktası ayarlayın
  2. Kesme noktasına sağ tıklayın ve Koşul'u seçin
  3. "Kesme Noktası Koşulu" yazan bir iletişim kutusu göreceksiniz
  4. Alana bir koşul koyun, örneğin "i == 5"

Kesme noktası sadece i 5 olduğunda vurulacaktır.


4
  1. Her zamanki gibi bir kesme noktası ayarlayın.
  2. Kesme noktası işaretleyicisine sağ tıklayın
  3. "Koşul ..." u tıklayın
  4. Bir koşul yazın, değişken adları kullanabilirsiniz
  5. "Doğru" veya "Değişti" seçeneklerinden birini belirleyin

4

Visual Studio 6.0'da

Alt+ F9!!!


1
-1) Bu VS 2012'de işe yaramıyor 2) Bu soru zaten çok sayıda (daha iyi) cevaba sahip ve 3) yeryüzünde VS 6.0'ı kimin umurunda (1998'de yayınlandı)? 4) Birisi VS 6'yı önemsese bile, soru VS'nin (Visual Studio .Net) bir sonraki sürümüne kadar desteği olmayan .Net ile etiketlenir
Tim Medora

7
Peki, diğer cevaplar VS 6.0 üzerinde çalışmaz. Bu yüzden bir çözüm yayınladım.
Vorac

1

breakpointNormalde yaptığınız gibi ayarlayın, kırılma noktasını sağ tıklayın ve seçeneği seçin condionve durumunuzu ayarlayın.


1

Koşullu işlev kesme noktası oluşturma:

  1. Kesme noktaları penceresinde, yeni bir kesme noktası oluşturmak için Yeni'yi tıklatın.

  2. İşlev sekmesinde, İşlev için Tersine yazın. Satır için 1, Karakter için 1 yazın ve ardından Dil'i Temel olarak ayarlayın.

  3. Koşul'u tıklatın ve Koşul onay kutusunun seçili olduğundan emin olun. Tip instr.length > 0seçildiğinde gerçek seçenektir emin olun Durumu için ve sonra Tamam'ı tıklayın.

  4. Yeni Kesme Noktası iletişim kutusunda Tamam'ı tıklatın.

  5. Hata Ayıkla) menüsünde, Başlat 'ı tıklatın.


0

Google'dan geldiyseniz, bu yanıt aradığınız şey olabilir.

  1. Hata Ayıkla> Yeni Kesme Noktası> İşlev Kesme Noktası'nı tıklatın resim açıklamasını buraya girin

  2. orada koşullu kesme noktasını seçin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.