2009-05-16 14 views

cevap

9

Bazı değişkenler değiştiğinde yürütmeyi durdurmak için bir veri kesme noktası ayarlayın.

Değişkeninizin veya değişkeninizin görünür olduğu bir yerde başlatılıncaya kadar bekleyin - adresini bellekte alabilmeniz gerekir. Daha sonra, menülerden Debug -> New Breakpoint -> Yeni Veri Kesme Noktası'nı seçin. "&var" girin (var ile değişkeninizin adıyla değiştirin.)

Bu, değişkeninizi değiştiren kod satırındaki hata ayıklayıcısına bölünür. Burada

Daha belgeleri:

bir atama veya diğer doğrudan güncelleme ile modifiye ediliyorsa http://msdn.microsoft.com/en-us/library/350dyxd0.aspx

+0

Tamlık açısından: kodunuzdan bir değeri değiştiren başka şeyler olabilir ve bu şeyler bir bellek kesme noktası tarafından yakalanmaz: http://stackoverflow.com/questions/2362688/global-variable-is-changed -but-bellek-breakpoint-is-not-hit – Suma

2

Koşullu kesme noktasını, değişkenin kullanıldığı yerlerde ayarlayabilirsiniz.

Visual Studio set kesme noktasında, imleciniz kesme noktasını ayarlamak istediğiniz satırda olduğunda F9 tuşuna basarak kesme noktasını ayarlayın.
Ardından, kesme noktasını sağ tıklayın ve Koşul'u seçin.

n != 5 

İyi şans gibi durumunuzu yazın.

İşte a link from MSDN.

0

, veri kesme noktası çalışacaktır. Ancak, eğer başka bir yolla değiştirilmek isteniyorsa - örneğin bir tamponun üzerine yazma - tam olarak ne zaman gerçekleşeceğini size söyleyeceğinden emin değilim. Sadece akılda tutulması gereken bir şey.

+1

Ciddi bir şekilde yanıltılmış olmadıkça, * bellek konumu * üzerinde tanımlayıcı değil bir veri kesme noktası ayarlanır. (Bu yüzden, bir adres belirlediğinizde bir adresi değerlendiren bir ifade vermeniz gerekir.) Bu nedenle, arabellek taşmaları, parçalanmış yığınlar, yığın bozulması ve tüm bu iyi şeyleri yakalamalıdır. – Charlie

+0

Bu doğru geliyor. Tahmin edeceğim sorun, bir tanımlayıcı isminin en iyi duruma getirildiği ve kırılma noktasını bile ayarlayamayacağınız zamandır. –

+0

Endişelenme, ciddi bir donanım özelliği. –

İlgili konular