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


A KDbgCtrl használata

A KDbgCtrl (Kernel hibakeresési vezérlő, kdbgctrl.exe) eszközzel szabályozható a kernel hibakeresési kapcsolata a célszámítógépről.

Az eszköz használatához a célszámítógépnek Windows Server 2003-at vagy a Windows egy újabb verzióját kell futtatnia.

A KDbgCtrl öt különböző beállítást szabályozhat: teljes kernel-hibakeresés, automatikus kernel-hibakeresés, User-Mode hibakezelés, a kernel hibakeresésének blokkolása és a DbgPrint puffer mérete.

A KDbgCtrl használatához engedélyeznie kell a kernel hibakeresését a célszámítógép rendszerindítási beállításaiban az utolsó rendszerindítás előtt. A KDbgCtrl nem használható a kernel hibakeresésének engedélyezésére, ha ez nem történt meg. A rendszerindítási beállítások részleteiért tekintse meg a rendszerindítási paramétereket a hibakeresés engedélyezéséhez .

Teljes kernel-hibakeresés

Ha engedélyezve van a teljes kernel hibakeresése, a gazdaszámítógépen futó kernel-hibakeresők betörhetnek a célszámítógépre. A célszámítógép belép a kernel hibakereső módba, ha kernel módú kivételt észlel. A célról a gazdagépre irányuló üzenetek, például a DbgPrint kimenete, a szimbólumbetöltési üzenetek és az átirányított felhasználói módú hibakeresők is engedélyezettek.

Ha ez a beállítás le van tiltva, a cél figyelmen kívül hagyja a gazdaszámítógép összes jelét.

Alapértelmezés szerint a teljes kernel-hibakeresés engedélyezve van. Az aktuális beállítás értékének ellenőrzéséhez használja a kdbgctrl -c értéket. A beállítás letiltásához használja a kdbgctrl -d parancsot. A beállítás engedélyezéséhez használja a kdbgctrl -e parancsot.

Ha ellenőrizni szeretné az aktuális beállítást, és szeretné vezérelni a kötegelt fájlon belüli végrehajtást, használhatja a kdbgctrl -cx parancsot. A parancs részleteiért lásd: KDbgCtrl Command-Line Options.

Automatikus kernel-hibakeresés

Ha a teljes kernel hibakeresése engedélyezve van, az automatikus kernelkeresés jelenlegi beállítása nem lényegtelen – minden kommunikáció engedélyezett.

Ha a teljes kernel hibakeresése le van tiltva, és az automatikus kernel-hibakeresés engedélyezve van, csak a célszámítógép kezdeményezhet hibakeresési kapcsolatot.

Ebben az esetben csak egy kernelmódú kivétel, töréspont vagy más kernel módú esemény okoz kapcsolatot. A kapcsolat nem jön létre a DbgPrint-kimenethez, a szimbólumbetöltési üzenetekhez, az átirányított felhasználói módú hibakereső bemenethez és kimenethez, illetve más hasonló üzenetekhez – ezeket a DbgPrint pufferben tárolja a rendszer, nem pedig a kernel hibakeresőnek küldi.

Ha egy kivétel vagy esemény miatt a cél a kernel hibakeresőjébe kerül, akkor a teljes kernel hibakeresés automatikusan be lesz kapcsolva, ugyanúgy, mintha a kdbgctrl -e parancsot hajtotta volna végre.

Alapértelmezés szerint az automatikus kernelkeresés le van tiltva (bár ez nem lényegtelen, kivéve, ha a teljes kernel hibakeresése is le van tiltva). Az aktuális beállítás értékének ellenőrzéséhez használja a kdbgctrl -ca értéket. A beállítás letiltásához használja a kdbgctrl -da parancsot. A beállítás engedélyezéséhez használja a kdbgctrl -ea parancsot.

User-Mode hibakezelés

Ha a User-Mode hibakezelés engedélyezve van, egyes felhasználói módú események hatására a célszámítógép átlép a kernel hibakeresési programba.

Konkrétan az összes int 3 megszakítás – például a hibakereső által a kódba beszúrt töréspontok vagy a DbgBreakPoint hívásai – megszakítást okoznak a kernel hibakeresőben. A standard kivételeket ( például a hozzáférés-szabálysértéseket és a nullával való osztást ) azonban általában nem küldi el a rendszer a kernel-hibakeresőnek.

Ha egy felhasználói módú hibakereső már csatlakozik a folyamathoz, ez a hibakereső rögzíti az összes felhasználói módú hibát, és a rendszermag-hibakereső nem módosul. A különböző felhasználói módú hibakezelők rangsorolását lásd: Postmortem hibakeresés engedélyezése.

Ahhoz, hogy User-Mode hibakezelés működjön, a teljes kernel hibakeresését vagy az automatikus kernel-hibakeresést is engedélyezni kell.

User-Mode hibakezelés alapértelmezés szerint engedélyezve van. Az aktuális beállítás értékének ellenőrzéséhez használja a kdbgctrl -cu parancsot. A beállítás letiltásához használja a kdbgctrl -du parancsot. A beállítás engedélyezéséhez használja a kdbgctrl -eu parancsot.

Kernel hibakeresésének letiltása

Bizonyos esetekben érdemes lehet beállítani a célszámítógépet a kernel hibakereséséhez, de várja meg a kernel hibakeresését a célszámítógép elindítása után. Ezt a kernel hibakeresésének letiltásával teheti meg.

Fontos

Mielőtt a BCDEdit használatával megváltoztatja a rendszerindítási információkat, előfordulhat, hogy ideiglenesen fel kell függesztenie a Windows biztonsági funkcióit, például a BitLockert és a biztonságos rendszerindítást a tesztszámítógépen. Ha a tesztelés befejeződött, és megfelelően kezeli a tesztszámítógépet, a biztonsági funkciók letiltásakor engedélyezze újra ezeket a biztonsági funkciókat.

A kernel hibakeresésének letiltásához állítsa be a célszámítógépet az alábbi parancsokhoz hasonló parancsokkal:

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

A célszámítógép újraindításakor a rendszer előkészíti a rendszermag hibakeresését, de a rendszermag hibakeresése és User-Mode hibakezelés le lesz tiltva. Ezen a ponton a gazdaszámítógép nem tud csatlakozni a célszámítógéphez, a hibaellenőrzéseket a kernel-hibakereső nem fogja elkapni, és a felhasználói módú kivételek nem okoznak betörést a kernel-hibakeresőbe.

Ha elkészült, a következő parancsok megadásával engedélyezheti a kernel hibakeresését (a célszámítógép újraindítása nélkül).

kdbgctrl -db
kdbgctrl -e

Később az alábbi parancsok megadásával letilthatja a kernel hibakeresését.

kdbgctrl -d
kdbgctrl -eb

A kdbgctrl -cb használatával ellenőrizheti, hogy a kernel hibakeresése le van-e tiltva.

A DbgPrint puffer mérete

A DbgPrint puffer tárolja azokat az üzeneteket, amelyeket a célszámítógép küldött a kernel-hibakeresőnek.

Ha a teljes kernel-hibakeresés engedélyezve van, ezek az üzenetek automatikusan megjelennek a kernel hibakeresőjében. Ha azonban ez a beállítás le van tiltva, ezek az üzenetek a pufferben lesznek tárolva. Egy későbbi időpontban engedélyezheti a kernel hibakeresését, csatlakozhat egy kernel-hibakeresőhöz, és a !dbgprint kiterjesztéssel megtekintheti a puffer tartalmát. A pufferről további információt a DbgPrint puffer című témakörben talál.

A DbgPrint puffer alapértelmezett mérete 4 KB egy ingyenes Windows-builden. Az aktuális pufferméret meghatározásához használja a kdbgctrl -cdb parancsot. A puffer méretének módosításához használja a kdbgctrl -sdb Size parancsot, ahol a Méret az új pufferméretet adja meg. A szintaxis részleteiért lásd: KDbgCtrl Command-Line Beállítások.

példák

Az összes aktuális beállítás megjelenítéséhez használja a következő parancsot:

kdbgctrl -c -ca -cu -cb -cdb 

Az alapértelmezett beállítások visszaállításához használja a következő parancsot:

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

Ha ki szeretné zárni a gazdaszámítógépet, hogy csak kivételekkel lépjen kapcsolatba, használja a következő parancsot:

kdbgctrl -d -ea -eu 

Az összes kernel-hibakeresés letiltásához használja a következő parancsot:

kdbgctrl -d -da 

Ha az összes kernel-hibakeresést letiltja, érdemes lehet növelni a DbgPrint puffer méretét is. Ez biztosítja, hogy minden üzenet mentésre kerül, ha később látnia kell őket. Ha egy megabájtnyi memóriát meg kell szabadítania, a következő parancsot használhatja:

kdbgctrl -sdb 0x100000