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


Töréspontok jelzőinek és paramétereinek szabályozása

Számos módszer használható a töréspontok alapvető információinak meghatározására:

  • A GetId a töréspont azonosítóját adja vissza.

  • A GetType a töréspont típusát (szoftver vagy processzor) és annak a hatékony processzornak a típusát adja vissza, amelyre a töréspont be van állítva.

  • A GetAdder a töréspontot hozzáadó klienst adja vissza.

  • A GetOffset egy töréspont címét adja vissza.

  • A GetOffsetExpression a töréspont helyét meghatározó kifejezési sztringet adja vissza.

A töréspontok a hely és a töréspont típusa mellett számos paraméterrel is vezérli a működését.

A töréspontparaméterek számos különböző módszerrel vezérelhetők. Emellett a paraméterek többsége a GetParameters használatával is lekérdezhető.

Töréspontok jelzői

A töréspont-jelzők egyfajta töréspont-paraméterek.

A töréspontok jelzői a GetFlags használatával kérdezhetők le. Ezek az AddFlags, RemoveFlags vagy SetFlags használatával módosíthatók.

A töréspontok jelzői bitmezőt alkotnak. Az ebben a bitmezőben használható lehetséges jelzők és jelentésük a következők:

HIBAKERESÉSI_TÖRÉSPONT_ENGEDÉLYEZVE
Ha ez a jelző be van állítva, a töréspont engedélyezve van, és normál hatása lesz. Ha ez a jelző nincs beállítva, a töréspont le van tiltva , és nincs hatása. Ha ideiglenesen inaktiválni szeretne egy töréspontot, eltávolíthatja ezt a jelzőt; ezután egyszerűen felveheti ezt a jelzőt, ha újra engedélyezni szeretné ezt a töréspontot.

DEBUG_BREAKPOINT_ADDER_ONLY
Ha ez a jelző be van állítva, a töréspont egy privát töréspont. Ez a töréspont csak annak az ügyfélnek látható, aki hozzáadta. Ebben az esetben más kliensek nem tudják lekérdezni a motort a törésponttal kapcsolatban, és a motor sem küldi el a töréspont által létrehozott eseményeket más klienseknek. A törésponthoz kapcsolódó összes visszahívás (esemény és kimenet) csak ennek az ügyfélnek lesz elküldve. Lásd: GetAdder.

HIBAKERESÉSI_TÖRÉSPONT_CSAK_FOLYTATÁSRA
Ha ez a jelző be van állítva, a töréspont csak akkor aktiválódik, ha a cél korlátlan végrehajtás alatt áll. Nem aktiválódik, ha a processzor a célzott utasításokon lép végig.

DEBUG_BREAKPOINT_ONE_SHOT
Ha ez a jelző be van állítva, a töréspont automatikusan eltávolítja magát az első aktiválásakor.

DEBUG_SZÜNETPONT_ELHALASZTOTT (DEBUG_BREAKPOINT_DEFERRED)
Ha ez a jelző be van állítva, a töréspont elhalasztva lesz. Ezt a jelzőt a motor állítja be, ha a töréspont eltolása szimbolikus kifejezéssel van megadva, és a motor nem tudja kiértékelni a kifejezést. Minden alkalommal, amikor egy modul betöltődik vagy kirakódik a célrendszerben, a motor megpróbálja újraértékelni a kifejezést minden olyan töréspont esetében, amelynek helye kifejezéssel van megadva. Azok, amelyek nem értékelhetők, halasztottként vannak megjelölve. Ezt a jelzőt egyetlen ügyfél sem módosíthatja.

Egyéb töréspont-paraméterek

A töréspont-paraméterek a következőket is tartalmazzák:

Pass count
Ha a törésponthoz hozzáférési szám van társítva, a rendszer addig nem aktiválja, amíg a cél a megadott számú alkalommal nem lépi át a töréspontot. Az eredetileg beállított pass count a GetPassCount használatával lekérdezhető. A GetCurrentPassCount használatával megadhatja, hogy a motor hány alkalommal lépi át a töréspontot az aktiválás előtt. Az áthagyások száma a SetPassCount használatával új értékre állítható be.

Mérkőzés szál
Ha a törésponthoz egy szál van társítva, a motor figyelmen kívül hagyja, amikor bármely más szál találkozik vele. A szál a GetMatchThreadId használatával található, és a SetMatchThreadId használatával módosítható.

Parancs
Előfordulhat, hogy a törésponthoz egy parancs van társítva. A parancs a töréspont aktiválásakor lesz végrehajtva. Ez a parancs a GetCommand használatával található, és a SetCommand használatával módosítható.

Méret
Ha a töréspont egy processzortörési pont, annak meghatározott méretűnek kell lennie. Ez határozza meg annak a memóriablokknak a méretét, amelynek hozzáférése aktiválja a töréspontot – a blokk kezdete a töréspont helye. A méret a GetDataParameters használatával található, és a SetDataParameters használatával módosítható.

Hozzáférési típus
Ha a töréspont processzortörési pont, akkor hozzáférés-típussal kell rendelkeznie. Ez határozza meg, hogy milyen típusú hozzáférés aktiválja a töréspontot. A töréspont például aktiválható, ha a cél olvas, ír vagy végrehajtja a töréspont által megadott memóriát. A hozzáférési típus a GetDataParameters használatával található, és a SetDataParameters használatával módosítható.

A processzortöréspontok érvényes paraméterei

A processzortörési pontokhoz a következő hozzáférési típusok érhetők el:

Érték Leírás

DEBUG_BREAK_READ

A töréspont akkor aktiválódik, amikor a PROCESSZOR beolvassa a memóriát a töréspont memóriablokkjában.

DEBUG_BREAK_WRITE

A töréspont akkor aktiválódik, amikor a PROCESSZOR memóriát ír a töréspont memóriablokkjába.

DEBUG_BREAK_READ | DEBUG_BREAK_WRITE

A töréspont akkor aktiválódik, ha a PROCESSZOR beolvassa vagy írja a memóriát a töréspont memóriablokkjában.

DEBUG_BREAK_EXECUTE

A töréspont akkor aktiválódik, amikor a PROCESSZOR lekéri a töréspont memóriablokkjában lévő utasítást.

DEBUG_BREAK_IO

A töréspont a töréspontok memóriablokkjában lévő I/O-port elérésekor aktiválódik. (Csak Windows XP és Microsoft Windows Server 2003, csak kernel mód, csak x86)

Nem minden hozzáférési típus és méret támogatott minden processzoron. A következő hozzáférési típusok és méretek támogatottak:

x86
Minden hozzáférési típus támogatott. DEBUG_BREAK_READ úgy viselkedik, mint DEBUG_BREAK_READ | DEBUG_BREAK_WRITE. A méretnek 1, 2 vagy 4 kell lennie. A töréspont címének a méret többszörösének kell lennie.

x64
Minden hozzáférési típus támogatott. DEBUG_BREAK_READ úgy viselkedik, mint DEBUG_BREAK_READ | DEBUG_BREAK_WRITE. A méretnek 1, 2, 4 vagy 8 kell lennie. A töréspont címének a méret többszörösének kell lennie.