Aracılığıyla paylaş


Kesme Noktası Sözdizimi

Hata Ayıklayıcı Komut penceresi veya WinDbg grafik arabirimi aracılığıyla bir kesme noktası oluştururken aşağıdaki söz dizimi öğeleri kullanılabilir.

Kesme noktalarındaki adresler

Kesme noktaları, sanal adresler, işlev uzaklıkları ve kaynak satır numaraları gibi birçok tür adres söz dizimini destekler. Örneğin, kesme noktalarını ayarlamak için aşağıdaki komutlardan herhangi birini kullanabilirsiniz:

0:000> bp 0040108c
0:000> bp main+5c
0:000> bp `source.c:31`

Bu söz dizimi hakkında daha fazla bilgi için bkz . Sayısal İfade Söz Dizimi, Kaynak Satır Sözdizimi ve tek tek komut konuları.

Yöntemlerdeki kesme noktaları

MyClass sınıfında MyMethod yöntemine bir kesme noktası koymak istiyorsanız, iki farklı söz dizimi kullanabilirsiniz:

  • MASM ifade söz diziminde, bir yöntemi çift iki nokta veya çift alt çizgi ile belirtebilirsiniz.

    0:000> bp MyClass::MyMethod 
    0:000> bp MyClass__MyMethod 
    
  • C++ ifade söz diziminde, bir yöntemi çift iki nokta ile belirtmeniz gerekir.

    0:000> bp @@( MyClass::MyMethod ) 
    

Daha karmaşık bir kesme noktası komutu kullanmak istiyorsanız MASM ifade söz dizimi kullanmalısınız. İfade söz dizimi hakkında daha fazla bilgi için bkz . İfadeleri Değerlendirme.

Karmaşık MASM ifadeleri kullanan kesme noktaları

Boşluk içeren işlevlerin yanı sıra C++ ortak sınıfının bir üyesi de dahil olmak üzere karmaşık işlevlerde kesme noktası ayarlamak için ifadeyi parantez içine alın. Örneğin bp (?? MyPublic) veya bp (işleç yeni).

@!"chars" söz dizimini kullanmak daha çok yönlü bir tekniktir. Bu, MASM değerlendiricisinde sembol çözümlemesi için rastgele metin sağlamanıza olanak tanıyan özel bir kaçıştır. @!" üç simgeyle başlayıp tırnak işaretiyle (") bitirmelisiniz. Bu söz dizimi olmadan MASM değerlendiricisindeki simge adlarında boşluk, açılı ayraç (<, >) veya diğer özel karakterleri kullanamazsınız. Bu söz dizimi yalnızca adlara yöneliktir ve parametrelere yönelik değildir. Şablonlar ve aşırı yüklemeler, bu tırnak işareti gösterimini gerektiren birincil sembol kaynaklarıdır. Komut bu'yu @!"chars" söz dizimiyle de ayarlayabilirsiniz, aşağıdaki kod örneğinde gösterildiği gibi.

0:000> bu @!"ExecutableName!std::pair<unsigned int,std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> > >::operator="

Bu örnekte Yürütülebilir Ad , yürütülebilir dosyanın adıdır.

Bu kaçış söz dizimi, C işlevi adlarında boşluk (veya özel karakter) olmadığından C yerine C++ (örneğin, aşırı yüklenmiş işleçler) için daha kullanışlıdır. Ancak, .NET Framework'te aşırı yüklemelerin önemli ölçüde kullanılması nedeniyle bu söz dizimi birçok yönetilen kod için de önemlidir.

C++ söz diziminde rastgele metinde kesme noktası ayarlamak için, C++uyumlu simgeler için bu @@c++(metin) kullanın.

Betiklerdeki kesme noktaları

Kesme noktası kimliklerinin açıkça belirtilmesi gerekmez. Bunun yerine, kesme noktası kimliğine karşılık gelen bir tamsayıya çözümleyen sayısal bir ifade kullanabilirsiniz. İfadenin kesme noktası olarak yorumlanması gerektiğini belirtmek için aşağıdaki söz dizimini kullanın.

b?[Expression]

Bu söz diziminde köşeli ayraçlar gereklidir ve İfade , kesme noktası kimliğine karşılık gelen bir tamsayıya çözümleyen tüm sayısal ifadeleri ifade eder.

Bu söz dizimi, hata ayıklayıcı betiklerinin program aracılığıyla bir kesme noktası seçmesine olanak tanır. Aşağıdaki örnekte, kesme noktası, kullanıcı tarafından tanımlanan bir tür sanal yazmaç değerine bağlı olarak değişir.

b?[@$t0]

Durma noktası sahte kaydedicileri

bir ifadedeki kesme noktası adresine başvurmak istiyorsanız, $bpNumarası söz dizimi ile sahte kayıt kullanabilirsiniz; burada Sayı, kesme noktası kimliğidir. Bu söz dizimi hakkında daha fazla bilgi için bkz. söz dizimi Pseudo-Register.

Belirsiz kesme noktası çözümlemesi

Hata ayıklayıcı altyapısının 10.0.25310.1001 ve sonraki sürümlerinde artık belirsiz kesme noktası çözümlemesi desteklenmektedir. Belirsiz kesme noktaları, hata ayıklayıcının bir kesme noktası ifadesinin birden çok konuma çözümlendiği belirli senaryolarda kesme noktaları ayarlamasına olanak sağlar. Daha fazla bilgi için bkz. Belirsiz kesme noktası çözümlemesi.

Ayrıca bakınız

Kesme Noktalarını Kullanarak

bp, bu, bm (Kesme Noktasını Ayarla)

Çözümlenmemiş Kesme Noktaları (bu Kesme Noktaları)