Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
KD och kernelläge WinDbg stöder felsökning av flera processorer. Du kan utföra den här typen av felsökning på valfri plattform med flera processorer.
Processorer numreras noll till och med n.
Om den aktuella processorn är processor 0 (dvs. om det är processorn som för närvarande gjorde att felsökningsprogrammet var aktivt) kan du undersöka de andra icke-aktuella processorerna (processorer en till och med n). Du kan dock inte ändra något i processorer som inte är aktuella. Du kan bara se deras tillstånd.
Att välja en processor
Du kan använda kommandot .echocpunum (Visa CPU-nummer) för att visa processornumren för den aktuella processorn. Med utdata från det här kommandot kan du omedelbart se när du arbetar med ett system med flera processorer med hjälp av texten i kernel-felsökningsprompten.
I följande exempel 0: framför kd-prompten> anger du att du felsöker den första processorn på datorn.
0: kd>
Använd kommandot ~s (Ändra aktuell processor) för att växla mellan processorer, vilket visas i följande exempel.
0: kd> ~1s
1: kd>
Nu felsöker du den andra processorn på datorn.
Du kan behöva byta ut processorer i ett system med flera processorer om du stöter på ett avbrott och inte kan förstå stackspårningen. Pausen kan ha inträffat på en annan processor.
Ange processorer i andra kommandon
Du kan lägga till ett processornummer före flera kommandon. Det här talet föregås inte av en tilde (~), förutom i kommandot ~S .
Notera Vid användarlägesfelsökning används en tilde för att ange trådar. Mer information om den här syntaxen finns i Trådsyntax.
Processor-ID:t behöver inte uttryckligen hänvisas till. I stället kan du använda ett numeriskt uttryck som matchar ett heltal som motsvarar ett processor-ID. Om du vill ange att uttrycket ska tolkas som en processor använder du följande syntax.
||[Expression]
I den här syntaxen krävs hakparenteser och Uttryck står för alla numeriska uttryck som matchar ett heltal som motsvarar ett processor-ID.
I följande exempel ändras processorn beroende på värdet för ett användardefinierat pseudoregister.
||[@$t0]
exempel
I följande exempel används kommandot k (Display Stack Backtrace) för att visa en stackspårning från processor två.
1: kd> 2k
I följande exempel används kommandot r (Registers) för att visa eax-registret för processor tre.
1: kd> 3r eax
Följande kommando ger dock ett syntaxfel eftersom du inte kan ändra tillståndet för en annan processor än den aktuella processorn.
1: kd> 3r eax=808080
Brytpunkter
Under kernel-felsökning gäller kommandona bp, bu, bm (Set Breakpoint) och ba (Break on Access) för alla processorer på en dator med flera processorer.
Om den aktuella processorn till exempel är tre kan du ange följande kommando för att placera en brytpunkt på SomeAddress.
1: kd> bp SomeAddress
Sedan orsakar alla processorer (inte bara processor ett) som körs på den adressen en brytpunktsfälla.
Visa processorinformation
Du kan använda tillägget !running för att visa status för varje processor på måldatorn. För varje processor kan !running också visa aktuella och nästa trådfält från processkontrollblocket (PRCB), tillståndet för de 16 inbyggda köade spinlockarna och ett stackspår.
Du kan använda tilläggen !cpuinfo och !cpuid för att visa information om själva processorerna.