2010-11-03 26 views
40

'daki veri kesme noktaları, VS ile birlikte geliştirirken, bellekte belirli bir adresteki veriler değiştiğinde tetiklenen bu inanılmaz veri kesme noktaları özelliğine sahipsiniz. Tutulmada java geliştirilirken benzer bir özellik var mıdır?java/eclipse

Teşekkürler!

düzenleme: "değer değişikliklerinin ne zaman askıya alındığı" özelliği hakkında: yürütmenin kesme noktasının olduğu çizgiye erişmesi gerektiği izlenimine sahibim. şey, değerin değiştiği anda herhangi bir yerde tetiklemesini istiyorum.

cevap

59

Bir sahada Watchpoint ayarlayabilirsiniz: alanına ilan ediliyor çizgisinde imleci ve Run -> Toggle Watchpoint
ya da sadece o hat üzerinde sol kenar boşluğuna çift tıklayarak bir kesme noktası ayarlamak menüsünü seçin.

Gözlem noktasının özelliklerini, ekledikten sonra suspend on field access veya suspend on field modification gibi değiştirebilirsiniz. Sadece watchpoint daha fazla bilgi almak için yardımda ara sol kenar boşluğuna watchpoint üzerine sağ tıklayın ve Breakpoint Properties...

belirleyin:

bir izleme noktası her bir uygulamanın çalışmasını durdurur özel kesme noktası olan değer Belirli bir ifadenin, nerede oluşabileceğini belirtmeden değiştirir. ...

+0

Mükemmel! tam olarak ihtiyacım olan şey! – clamp

+3

Bu yararlı (ve I + 1'lenmiş), ancak yine de sorunun yanıtı değil. Bu, belirli bir örnekte değil, bu bildirimin * herhangi bir örneğini keser. –

+0

Sadece alan final olmadığında izleme noktası seçeneğine sahibim. Son bir nesneye erişimi nasıl izleyebilirim? (Bir öğenin bir haritaya ne zaman eklendiğini veya bir haritadan ne zaman alındığını görmek istiyorum.) – dj18

1

En yakın nokta kesme noktası özelliklerini düzenliyor olabilir. Farklı değerleri kontrol etmek için şartlar ekleyebilirsiniz. Başka bir yol, setter yöntemine bir kesme noktası ekleyebilir.

Kesme noktası özelliklerini, kesme noktası görünümünde önceden ayarlanmış bir kesme noktasına sağ tıklayarak ayarlayabilirsiniz.

3

Kesme noktası özellikleri altında, koşullu hale getirme ve "Değer değiştiğinde askıya al" radyo düğmesini kontrol etme seçeneğiniz vardır.

+0

teşekkürler, ancak nesneyi veya değişkeni izlemek istediğim nesneyi tam olarak nasıl sağlayabilirim? – clamp

+0

Bunu aşağıdaki alana girersiniz. Bu değişken her değiştiğinde kırılma ile aynı şey değildir, ancak programınızın sık sık geçtiği bir darboğaz varsa, bu noktada bir kırılma noktası oluşturabilir ve teoride sadece belirli bir değer değiştiğinde kırılabilir. – Neil

3

Kesme Noktası üzerinde sağ tıklayın ve Breakpoint properties'u seçin.

açılış ekranında, seç: Conditional -> Suspend when value changes

+0

teşekkürler, ancak nesneyi veya değişkeni izlemek istediğim nesneye tam olarak nasıl sağlarım? Radyo düğmesinin altındaki alana – clamp

+0

, değişken adını girin (this.foo gibi bir şey). Otomatik tamamlama var. –

1

olarak bildiğim kadarıyla, Eclipse böyle bir jenerik özelliği yoktur. Ancak, varolan bir kesme noktasına bazı koşulları verebilirsiniz:

Kodunuzda bir yerde bir kesme noktası ekleyin. Sonra, "Kesme Noktası" görünümünde, üzerine sağ tıklayın ve ardından "Kesme noktası özellikleri" ni seçin. Panelde, uygulamanın bu kesme noktasında durmasını sağlamak için doğrulanması gereken bir koşul ekleyebilirsiniz (örneğin if (foo > 0)).

Bu tam olarak istediğiniz gibi değil, ancak Eclipse'in böyle bir özellik sağladığını düşünmüyorum.

6

Değişken görünümü kullanma:

  • sağ alanını tıklayın ve "Değiştir Watchpoint" seçin ve sonra
  • sağ yine aynı örneği tıklayıp Instance sınır değerler" i seçin ... "belirli bir kesme noktasını belirli bir örneğe kısıtlamanıza olanak tanır.

Performansın büyük olasılıkla bir bellek donanım kesme noktasında olduğu kadar iyi olmadığını unutmayın (örneğin VC++ sürümünde olduğu gibi).