2012-06-08 21 views
5

Belirli bir koşul karşılandığında hata ayıklama moduna girmenin bir yolu var mı?Bir koşul karşılandığında hata ayıklama moduna nasıl girilir?

conditional breakpoint

: Ben gibi koşullu kesme noktaları ayarlamak mümkündür biliyorum

using System; 

namespace ConditionalDebug 
{ 
    public class Program 
    { 
     public static void Main(string[] args) 
     { 
      var r = new Random(); 
      var i = r.Next(2); 
      i += r.Next(2); 
      i += r.Next(2); 
      i += r.Next(2); 
      i += r.Next(2); 
      i = 1; 
      Console.WriteLine(i); 
     } 
    } 
} 

: ı i == 1 gerçek olur hangi hat üzerinde hata ayıklama moduna girmek isteyeyim diyelim Örneğin

Ama elbette bunu kullanamadım çünkü koddaki her satır için koşul değerinin değişebileceği ve gerçek bir uygulamada çok karışıklık yaratacak bir koşullu kesme noktası eklemem gerekecekti.

Yani, ayıklayıcı koşul yerine edildiği satırda kıracak şekilde koşul i == 1 set global bir yolu var mı?

Yardımlarınız için teşekkürler! VS adlı kırılma noktaları penceresinde

cevap

3

kısa cevap görmek için 'Hayır'

uzun yanıtı 'Pek değil, ama biraz' olmasıdır. İstediğiniz davranışa yaklaşmak için yapabileceğiniz şeyler var.

  • İzleme penceresini kullanabilir ve kodu manuel olarak değiştirebilir ve değiştiğini görebilirsiniz.
  • Değişken üzerindeki tüm referansları bulabilir ve değişkeninizi değiştirebilecek ve ara noktaları belirleyebilecek tüm ifadeleri izole edebilirsiniz.
  • Ardından size koşullu kırılma noktasını ayarlayabilirsiniz tek bir noktadan yukarıdaki, ama bir sarmalayıcı işlevini kullanın (veya yapmak o bir Mülkiyet) ve sadece o fonksiyonu (veya mülk setter) üzerinden değişkenin değerini ayarlayabilirsiniz eski/yeni değeri karşılaştırmak.
  • EVERY hattında bir kesme noktası koyabilirsiniz ve bunların tümünü bir kerede ayarlayabilirsiniz. Bir VS Eklentisi veya Makro yazarak bunu otomatikleştirebilirsiniz.
  • O beni aşar - ama kendi ayıklayıcısını yazmak ve uygulamak için 'her X Değişiklikleri kırın' gibi inanılmaz karmaşık ve müthiş bir şey yapmak mümkündür eminim.
+0

Teşekkürler, güzel cevap: D Fikrini beğendim: 'EVERY hattında bir mola noktası koyabilir ve hepsinin durumunu bir kerede ayarlayabilirsiniz. Bir VS Eklentisi veya Makro yazarak bunu otomatikleştirebilirsiniz. –

1

çoklu kesme noktaları seçmek mümkündür ve daha sonra sağ fare düğmesi ile tek adımda her ikisi üzerinde belirli bir koşulu ayarlayabilirsiniz.

sizin için uygun mu?

+0

sayesinde, bir yararlı bilgiler ama satır kod sürü gerçek projeler için neredeyse imkansız olurdu. :) İhtiyacım olan şey, tüm çözümün her satırında koşullu bir kesme noktasına sahip olmanın karşılığı olacaktır. –

1

Hayır diyelim, eğer düşünürseniz hata ayıklayıcısını sorgumda olduğum her kod satırını doğrulamamı istersiniz, ancak ben bunun ilginç olacağını düşündüğüm bir kişi hakkında bir şeyler düşünebilir mi diye izleyeceğim. :)

+0

Evet, bunun mümkün olup olmadığını bulmaya çalışıyorum: hata ayıklayıcısını çözümdeki her * kod satırından sonra kontrol etme. –

İlgili konular