Delen via


Schakelen tussen modi

Wanneer u foutopsporing in de gebruikersmodus van het kernelfoutopsporingsprogramma bepaalt, ziet u vier verschillende modi en kunt u op verschillende manieren schakelen tussen deze modi.

Opmerking Bij het beschrijven van dit scenario verwijst doeltoepassing naar de toepassing in de gebruikersmodus die onder foutopsporing staat, doelcomputer naar de computer die de doeltoepassing en het CDB- of NTSD-proces bevat, en hostcomputer naar de computer die de kernelfoutopsporing bevat.

De volgende vier modi worden aangetroffen:

Foutopsporing in de gebruikersmodus
De doelcomputer en doeltoepassing zijn geblokkeerd. De foutopsporingsprompt in de gebruikersmodus wordt weergegeven in het opdrachtvenster Debugger van het kernelfoutopsporingsprogramma. In WinDbg toont de prompt in het onderste paneel van het WinDbg-venster Invoer>. U kunt opdrachten invoeren bij deze prompt, alsof deze worden ingevoerd tijdens foutopsporing in de gebruikersmodus, om de status van de doeltoepassing te analyseren of ervoor te zorgen dat deze wordt uitgevoerd of doorloopt. Symboolbestanden, extensie-DLL's en andere bestanden waartoe het foutopsporingsprogramma toegang heeft, zijn deze bestanden op de doelcomputer, niet op de hostcomputer.

Uitvoering van doeltoepassing
De doelcomputer draait, de doeltoepassing draait, en het foutopsporingsprogramma wacht. Deze modus is hetzelfde als het laten uitvoeren van de doeltoepassing in gewone debugging.

Slaapstand
De doelcomputer is actief, maar de doeltoepassing is vastgelopen en beide foutopsporingsprogramma's zijn vastgelopen. Deze modus is handig als u iets op de doelcomputer moet doen, maar u niet de status van de foutopsporingssessie wilt wijzigen.

Foutopsporing in kernelmodus
De doelcomputer en de doeltoepassing zijn geblokkeerd. De debugprompt kd> in de kernelmodus wordt weergegeven in het opdrachtvenster van de kernel-debugger. Deze modus is de typische foutopsporingsstatus in de kernelmodus.

De sessie begint in de foutopsporingsmodus in de gebruikersmodus. De volgende acties en gebeurtenissen zorgen ervoor dat de modus wordt gewijzigd:

  • Als u wilt overschakelen van foutopsporing in de gebruikersmodus naar de uitvoering van de doeltoepassing, gebruikt u de opdracht g (Go) bij de Input> prompt.

  • Als u tijdelijk wilt overschakelen van foutopsporing in de gebruikersmodus naar doeltoepassingsuitvoering en vervolgens wilt terugkeren naar foutopsporing in de gebruikersmodus, gebruikt u een stap, tracering of andere tijdelijke uitvoeringsopdracht. Zie Het doel beheren voor een lijst met dergelijke opdrachten.

  • Als u wilt overschakelen van foutopsporing in de gebruikersmodus naar de slaapstand, gebruikt u de opdracht .sleep (Pause Debugger). Deze opdracht is getimed. Wanneer de tijd verloopt, keert het systeem terug naar foutopsporing in de gebruikersmodus.

  • Als u wilt overschakelen van foutopsporing in de gebruikersmodus naar foutopsporing in de kernelmodus, gebruikt u de opdracht .breakin (Break to the Kernel Debugger). Houd er rekening mee dat .breakin mogelijk mislukt met een fout met geweigerde toegang als het aanroepende proces geen beheerdersrechten heeft. Schakel in dit geval over naar KD door een korte .sleep-opdracht uit te geven en op Ctrl+C te drukken.

  • U kunt overschakelen van uitvoering van doeltoepassing naar foutopsporing in de gebruikersmodus, alleen in bepaalde omgevingen. Als op de doelcomputer Microsoft Windows XP of een latere versie van het Windows-besturingssysteem wordt uitgevoerd, kunt u de opdracht !bpid extension gebruiken. Als u CDB (niet NTSD) gebruikt, kunt u het CDB-venster op de doelcomputer activeren en op Ctrl+C drukken.

  • Als de doeltoepassing een onderbrekingspunt bereikt, een uitzondering tegenkomt, een andere gecontroleerde gebeurtenis tegenkomt of eindigt, schakelt het systeem over van uitvoering van de doeltoepassing naar foutopsporing in de gebruikersmodus. U moet dergelijke gebeurtenissen van tevoren plannen, met name wanneer u NTSD gebruikt. Zie Onderbrekingspunten gebruiken en Uitzonderingen en gebeurtenissen beheren voor meer informatie over deze gebeurtenissen.

  • Als u wilt overschakelen van uitvoering van doeltoepassing naar foutopsporing in kernelmodus, drukt u op Ctrl+C in het KD-venster, drukt u op Ctrl+BREAK of klikt u op Einde in het menu Foutopsporing in het WinDbg-venster of drukt u op SYSRQ of ALT+SYSRQ op het toetsenbord van de doelcomputer. (Als uw kernelfoutopsporingsprogramma KD is en u op Ctrl+C drukt op hetzelfde moment dat het kernelfoutopsporingsprogramma communiceert met de foutopsporingsprogramma in gebruikersmodus, kan het gebruikersmodusdebugger dit opvangen.)

  • Als het foutopsporingsprogramma een kernelfout tegenkomt of als u het hulpprogramma Breakin.exe gebruikt, schakelt het systeem over van uitvoering van de doeltoepassing naar foutopsporing in kernelmodus.

  • Als u wilt overschakelen van de slaapstand naar foutopsporing in de gebruikersmodus, wacht u tot de slaapstand is verlopen, start u een nieuw CDB-proces op de doelcomputer met behulp van de -wake opdrachtregeloptie of gebruikt u de opdracht .wake (Wake Debugger) in een andere kopie van CDB of NTSD op de doelcomputer.

  • Als u foutopsporing in de kernelmodus wilt uitschakelen, gebruikt u de opdracht g (Go) bij de kd> prompt. Met dit commando keer je terug naar foutopsporing in de gebruikersmodus of naar de uitvoering van de doeltoepassing, afhankelijk van welke van de twee de meest recent gebruikte toestand was.