Megosztás a következőn keresztül:


Töréspont szintaxisa

A töréspont létrehozásakor a következő szintaxiselemek használhatók a Hibakereső parancs ablakán vagy a WinDbg grafikus felületén keresztül.

Címek töréspontokban

A töréspontok sokféle címszintaxist támogatnak, beleértve a virtuális címeket, a függvényeltolásokat és a forrássorszámokat. A töréspontok beállításához például az alábbi parancsok bármelyikét használhatja:

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

A szintaxisról további információt a Numerikus kifejezés szintaxisa, a Forrásvonal szintaxisa és az egyes parancstémakörök című témakörben talál.

A metódusok töréspontjai

Ha töréspontot szeretne elhelyezni a MyClass osztály MyMethod metódusában, két különböző szintaxist használhat:

  • A MASM-kifejezés szintaxisában kettős kettősponttal vagy dupla aláhúzással jelölhet metódust.

    0:000> bp MyClass::MyMethod 
    0:000> bp MyClass__MyMethod 
    
  • A C++ kifejezés szintaxisában kettős kettősponttal kell jelölnie egy metódust.

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

Ha összetettebb töréspont-parancsot szeretne használni, használja a MASM-kifejezés szintaxisát. A kifejezésszintaxisról további információt a Kifejezések kiértékelése című témakörben talál.

Töréspontok bonyolult MASM-kifejezésekkel

Ha töréspontot szeretne beállítani bonyolult függvényekre, beleértve a szóközöket tartalmazó függvényeket, valamint egy C++ nyilvános osztály egy tagját, zárójelek közé foglalja a kifejezést. Például használja a bp (?? MyPublic) vagy bp (operátor új).

Egy sokoldalúbb technika az @!"chars" szintaxis. Ez egy speciális feloldás a MASM-kiértékelőben, amely lehetővé teszi tetszőleges szöveg megadását a szimbólumfeloldáshoz. A három szimbólumot @!" jellel kell kezdenie, és idézőjellel (") kell végződnie. E szintaxis nélkül a MASM-kiértékelőben nem használhat szóközöket, szögletes zárójeleket (<), >illetve más speciális karaktereket a szimbólumnevekben. Ez a szintaxis kizárólag nevekre és nem paraméterekre használható. A sablonok és túlterhelések a szimbólumok elsődleges forrásai, amelyek ezt az idézőjelet igénylik. A bu parancsot az @!"chars" szintaxis használatával is beállíthatja, ahogyan az alábbi kód példája mutatja.

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

Ebben a példában a Végrehajtható név egy végrehajtható fájl neve.

Ez a feloldó szintaxis A C helyett a C++ (például túlterhelt operátorok) esetében hasznosabb, mert a C függvénynevekben nincsenek szóközök (vagy speciális karakterek). Ez a szintaxis azonban sok felügyelt kód esetében is fontos, mivel a .NET-keretrendszerben jelentős a túlterhelés.

Ha a C++ szintaxisban tetszőleges szöveghez szeretne töréspontot beállítani, használja a bu @@c++(szöveg) függvényt a C++-kompatibilis szimbólumokhoz.

Töréspontok szkriptekben

A töréspontok azonosítóit nem kell explicit módon hivatkozni. Ehelyett használhat olyan numerikus kifejezést, amely egy töréspont-azonosítónak megfelelő egész számra oldható fel. Ha azt szeretné jelezni, hogy a kifejezést töréspontként kell értelmezni, használja az alábbi szintaxist.

b?[Expression]

Ebben a szintaxisban a szögletes zárójelek megadása kötelező, a Kifejezés pedig minden olyan numerikus kifejezés, amely töréspont-azonosítónak megfelelő egész számra van feloldva.

Ez a szintaxis lehetővé teszi, hogy a hibakereső szkriptek programozott módon válasszanak ki egy töréspontot. Az alábbi példában a töréspont a felhasználó által definiált pszeudoregisztrálás értékétől függően változik.

b?[@$t0]

Töréspont-pszeudoregiszterek

Ha egy kifejezésben egy töréspontcímre szeretne hivatkozni, használhat egy álregisztert a $bpSzám szintaxissal, ahol a Szám a töréspont ID-je. A szintaxissal kapcsolatos további információkért lásd Pseudo-Register Szintaxis című témakört.

Nem egyértelmű töréspont megoldása

A hibakereső motor 10.0.25310.1001-es és újabb verziójában mostantól támogatott a nem egyértelmű töréspont-felbontás. A nem egyértelmű töréspontok lehetővé teszik, hogy a hibakereső töréspontokat állítson be olyan helyzetekben, amikor egy töréspont-kifejezés több helyre is feloldható. További információ: Nem egyértelmű töréspontfeloldás.

Lásd még

Töréspontok használata

bp, bu, bm (Töréspont beállítása)

Megoldatlan töréspontok (Unresolved Breakpoints)