Använda KDbgCtrl

Verktyget KDbgCtrl (Kernel Debugging Control, kdbgctrl.exe) kan användas för att styra kernelfelsökningsanslutningen från måldatorn.

Om du vill använda det här verktyget måste måldatorn köra Windows Server 2003 eller en senare version av Windows.

KDbgCtrl kan styra fem olika inställningar: Fullständig kernelfelsökning, automatisk kernelfelsökning, User-Mode felhantering, blockering av kernelfelsökning och storleken på DbgPrint-bufferten.

Om du vill använda KDbgCtrl måste du redan ha aktiverat kernelfelsökning i startinställningarna för måldatorn före den senaste starten. KDbgCtrl kan inte användas för att aktivera kernel-felsökning om detta inte gjordes. Mer information om dessa startinställningar finns i Startparametrar för att aktivera felsökning .

Fullständig kernelfelsökning

När fullständig kernel-felsökning är aktiverat kan ett kernelfelsökare som körs på värddatorn bryta sig in på måldatorn. Måldatorn kommer att gå in i kernelfelsökaren om ett undantag i kernel-läge inträffar. Meddelanden från målet till värden, till exempel DbgPrint-utdata , symbolinläsningsmeddelanden och omdirigerade felsökningsprogram i användarläge, tillåts också.

Om den här inställningen är inaktiverad ignoreras alla signaler från värddatorn av målet.

Fullständig kernel-felsökning är aktiverat som standard. Om du vill kontrollera det aktuella inställningsvärdet använder du kdbgctrl -c. Om du vill inaktivera den här inställningen använder du kdbgctrl -d. Om du vill aktivera den här inställningen använder du kdbgctrl -e.

Om du vill kontrollera den aktuella inställningen och använda den för att styra körningen i en batchfil kan du använda kommandot kdbgctrl -cx . Mer information om det här kommandot finns i KDbgCtrl Command-Line Alternativ.

Automatisk kernel-felsökning

Om fullständig kernel-felsökning är aktiverad är den aktuella inställningen för automatisk kernelfelsökning oväsentlig – all kommunikation tillåts.

När fullständig kernel-felsökning är inaktiverad och automatisk kernelfelsökning är aktiverat kan endast måldatorn initiera en felsökningsanslutning.

I det här fallet kommer endast ett kernellägesfel, brytpunkt eller annan händelse i kernelläge att göra att en anslutning upprättas. Anslutningen upprättas inte för DbgPrint-utdata , symbolinläsningsmeddelanden, omdirigerade indata och utdata från användarlägesfelsökaren eller andra liknande meddelanden . Dessa lagras i DbgPrint-bufferten i stället för att skickas till kernelfelsökaren.

Om ett undantag eller en händelse gör att målet bryter sig in i kernelfelsökaren aktiveras fullständig kernel-felsökning automatiskt, precis som om du hade kört kdbgctrl -e.

Automatisk kernelfelsökning är inaktiverad som standard (även om detta inte är oväsentligt om inte fullständig kernel-felsökning också är inaktiverat). Om du vill kontrollera det aktuella inställningsvärdet använder du kdbgctrl -ca. Om du vill inaktivera den här inställningen använder du kdbgctrl -da. Om du vill aktivera den här inställningen använder du kdbgctrl -ea.

User-Mode felhantering

När User-Mode Felhantering är aktiverat gör vissa händelser i användarläge att måldatorn bryter sig in i kernelfelsökaren.

Mer specifikt kommer alla int 3-avbrott – till exempel brytpunkter som infogas i koden av ett felsökningsprogram eller anrop till DbgBreakPoint – att orsaka en inbrytning i kernelfelsökaren. Standardfel , till exempel åtkomstöverträdelser och division med noll, skickas dock vanligtvis inte till kernelfelsökaren.

Om ett felsökningsprogram i användarläge redan är kopplat till processen samlar det här felsökningsprogrammet in alla fel i användarläge och kernelfelsökaren ändras inte. Prioritetsordningen för de olika felhanterarna i användarläge finns i Aktivera postmortem-felsökning.

För att User-Mode felhantering ska fungera måste även fullständig kernel-felsökning eller automatisk kernelfelsökning aktiveras.

User-Mode Felhantering är aktiverat som standard. Om du vill kontrollera det aktuella inställningsvärdet använder du kdbgctrl -cu. För att inaktivera den här inställningen, använd kdbgctrl -du. Om du vill aktivera den här inställningen använder du kdbgctrl -eu.

Blockera kernelfelsökning

I vissa fall kanske du vill konfigurera måldatorn för kernelfelsökning, men vänta tills måldatorn har startats. Du kan göra det genom att blockera kernel-felsökning.

Viktigt!

Innan du använder BCDEdit för att ändra startinformationen kan du tillfälligt behöva pausa Windows-säkerhetsfunktioner som BitLocker och Säker start på testdatorn. Återaktivera dessa säkerhetsfunktioner när testningen är klar och hantera testdatorn på rätt sätt när säkerhetsfunktionerna är inaktiverade.

Om du vill blockera kernel-felsökning konfigurerar du måldatorn med hjälp av kommandon som liknar följande:

bcdedit /debug on
bcdedit /dbgsettings 1394 channel:32 /start DISABLE /noumex

När du startar om måldatorn förbereds den för kernelfelsökning, men kernelfelsökning och User-Mode felhantering inaktiveras. Vid den tidpunkten kommer en värddator inte att kunna ansluta till måldatorn, buggkontroller fångas inte av kernelfelsökaren och undantag i användarläge orsakar inte någon inbrytning i kernelfelsökaren.

När du är klar kan du aktivera kernelfelsökning (utan att starta om måldatorn) genom att ange följande kommandon.

kdbgctrl -db
kdbgctrl -e

Senare kan du inaktivera kernelfelsökning genom att ange följande kommandon.

kdbgctrl -d
kdbgctrl -eb

Du kan använda kdbgctrl -cb för att kontrollera om kernel-felsökning är blockerad.

DbgPrint-buffertstorleken

DbgPrint-bufferten lagrar meddelanden som måldatorn har skickat till kernelfelsökaren.

Om fullständig kernel-felsökning är aktiverat visas dessa meddelanden automatiskt i kernelfelsökaren. Men om det här alternativet är inaktiverat lagras dessa meddelanden i bufferten. Vid ett senare tillfälle kan du aktivera kernelfelsökning, ansluta till ett kernelfelsökare och använda filnamnstillägget !dbgprint för att se innehållet i bufferten. Mer information om den här bufferten finns i DbgPrint-bufferten.

Standardstorleken för DbgPrint-bufferten är 4 KB på en kostnadsfri version av Windows. Om du vill fastställa den aktuella buffertstorleken använder du kdbgctrl -cdb. Om du vill ändra buffertstorleken använder du kdbgctrl -sdbSize, där Storlek anger den nya buffertstorleken. Syntaxinformation finns i KDbgCtrl Command-Line Alternativ.

exempel

Om du vill visa alla aktuella inställningar använder du följande kommando:

kdbgctrl -c -ca -cu -cb -cdb 

Använd följande kommando för att återställa standardinställningarna:

kdbgctrl -e -da -eu -db -sdb 0x1000 

Om du vill låsa värddatorn så att den bara kontaktas vid undantag använder du följande kommando:

kdbgctrl -d -ea -eu 

Om du vill inaktivera all kernel-felsökning använder du följande kommando:

kdbgctrl -d -da 

Om du inaktiverar all kernel-felsökning kanske du också vill öka storleken på DbgPrint-bufferten. Detta säkerställer att alla meddelanden sparas om du behöver se dem senare. Om du har en megabyte minne att spara kan du använda följande kommando:

kdbgctrl -sdb 0x100000