Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.