Többprocesszoros szintaxis

A KD és a kernel módú WinDbg támogatja a processzorok több hibakeresését. Ezt a hibakeresést bármely többprocesszoros platformon elvégezheti.

A processzorok száma nulla és n között van.

Ha a jelenlegi processzor a 0-ás processzor (vagyis ha az a processzor, amely jelenleg a hibakeresőt aktiválta), megvizsgálhatja a többi nem aktuális processzort (az 1-estől n-ig tartozó processzorokat). A nem aktuális processzorokban azonban semmit sem módosíthat. Csak az állapotukat tekintheti meg.

Processzor kiválasztása

Az .echocpunum (CPU-szám megjelenítése) paranccsal megjelenítheti az aktuális processzor processzorszámait. A parancs kimenete lehetővé teszi, hogy azonnal jelezhesse, ha több processzorrendszeren dolgozik a kernel hibakeresési parancssorában található szöveg alapján.

A következő példában 0: a kd> parancssor előtt azt jelzi, hogy a számítógép első processzorát hibakereséssel kezdjük.

0: kd>

A ~s (Change Current Processor) paranccsal válthat a processzorok között az alábbi példában látható módon.

0: kd> ~1s
1: kd>

Most hibakeresést végzett a számítógép második processzorán.

Előfordulhat, hogy többprocesszoros rendszeren módosítania kell a processzorokat, ha szünetet tapasztal, és nem érti a verem nyomkövetését. Előfordulhat, hogy a törés egy másik processzoron történt.

Processzorok megadása más parancsokban

Több parancs előtt hozzáadhat egy processzorszámot. Ezt a számot nem előzi meg egy tilde (~), kivéve a ~S parancsot.

Jegyzet Felhasználói módban történő hibakeresés esetén a tilde a szálak megadására szolgál. A szintaxissal kapcsolatos további információkért lásd: Thread szintaxis.

A processzorazonosítókra nem kell explicit módon hivatkozni. Ehelyett használhat olyan numerikus kifejezést, amely egy processzorazonosítónak megfelelő egész számra oldható fel. Annak jelzéséhez, hogy a kifejezést feldolgozóként kell értelmezni, használja az alábbi szintaxist.

||[Expression]

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

Az alábbi példában a processzor a felhasználó által definiált pszeudoregisztráló értékétől függően változik.

||[@$t0]

példák

Az alábbi példa a k (Display Stack Backtrace) paranccsal jelenít meg egy veremkövetést a második processzorból.

1: kd> 2k 

Az alábbi példa az r (Registers) paranccsal jeleníti meg a harmadik processzor eax-nyilvántartását .

1: kd> 3r eax 

A következő parancs azonban szintaxishibát ad, mivel az aktuális processzortól eltérő processzor állapota nem módosítható.

1: kd> 3r eax=808080 

Töréspontok

A kernel hibakeresése során a bp, bu, bm (Set Breakpoint) és ba (Break on Access) parancsok egy több processzoros számítógép összes processzorára érvényesek.

Ha például az aktuális processzor három, a következő paranccsal töréspontot helyezhet el a SomeAddressben.

1: kd> bp SomeAddress 

Ezután bármely processzor (nem csak az 1-es processzor), amely azon a címen hajt végre, töréspont-csapdát okoz.

Processzoradatok megjelenítése

A !running kiterjesztéssel megjelenítheti az egyes processzorok állapotát a célszámítógépen. A !running minden processzor esetében megjeleníti a folyamatvezérlő blokk (PRCB) aktuális és következő szálmezőit, a 16 beépített várólistás spinlock állapotát és a verem nyomkövetését is.

A !cpuinfo és a !cpuid bővítményekkel megjelenítheti a processzorokra vonatkozó információkat.