Gewusst wie Ablaufverfolgungsmeldungen an einen Kerneldebugger senden?
Sie können mehrere Methoden verwenden, um Ablaufverfolgungsmeldungen an einen Kernelmodusdebugger umzuleiten. Einige werden hier erläutert.
Sie können Ablaufverfolgungsmeldungen an KD oder windbg umleiten, je nachdem, was angefügt ist. Der Debugger muss über einen COM-Port mit einem Debugkabel (NULL-Modem) oder über den Port 1394 ("Firewire") mit einem IEEE 1394-Kabel verbunden werden. Sie können Ablaufverfolgungsmeldungen nicht an andere Kerneldebugger wie NTSD umleiten.
Um Ablaufverfolgungsmeldungen in einem Debugger anzuzeigen, müssen sich wmitrace.dll und traceprt.dll im Suchpfad des Debuggers auf dem Hostcomputer befinden. Diese DLLs sind in Debugtools für Windows enthalten. Damit der Debugger die Dateien im Ablaufverfolgungsnachrichtenformat (TMF) für die Ablaufverfolgungsmeldungen finden kann, müssen sich die TMF-Dateien im Suchpfad des Debuggers auf dem Hostcomputer befinden. Verwenden Sie zum Festlegen des Suchpfads des Debuggers die spezialisierte Debuggererweiterung !wmitrace.searchpath, oder legen Sie den Wert der Umgebungsvariable %TRACE_FORMAT_SEARCH_PATH% fest.
Weitere Informationen finden Sie unter Debugtools für Windows nach !wmitrace.
Logman
Verwenden Sie den folgenden Logman-Befehl, um Ablaufverfolgungsmeldungen an einen Kernelmodusdebugger umzuleiten:
logman start TraceSession -ets -mode KernelFilter -bs 3
Der Parameter -ets startet eine Ereignisablaufverfolgungssitzung, die nicht vom Dienst Leistungsprotokolle und Warnungen gesteuert wird. Der Parameter -mode aktiviert erweiterte Optionen, einschließlich der KernelFilter-Option .
Der Parameter -bs legt die Puffergröße für die Ablaufverfolgungssitzung auf 3 KB fest, die maximale Puffergröße für den Debugger. Wenn Sie diesen Parameter weglassen, wird die Debuggersitzung nicht ordnungsgemäß ausgeführt.
Logman ist in Windows XP und höheren Versionen von Windows enthalten.
Ablaufverfolgungsprotokoll
Verwenden Sie den folgenden Tracelog-Befehl , um ablaufverfolgungsnachrichten an einen Kernelmodusdebugger umzuleiten:
tracelog -start MyTrace -guid MyProvider.ctl -rt -kd
Der Parameter -guid gibt den Ablaufverfolgungsanbieter an. Der Parameter -rt gibt eine Echtzeit-Ablaufverfolgungssitzung an. Der Parameter -kd leitet die Ablaufverfolgungsmeldungen an den Kerneldebugger um und legt die maximale Puffergröße auf 3 KB fest, das Maximum für den Debugger.
Ein Beispiel finden Sie unter Beispiel 16: Anzeigen von Ablaufverfolgungsmeldungen in einem Debugger.
Tracelog befindet sich im Unterverzeichnis tools\tracing\<Platform> des WDK, wobei <Platform> entweder i386, amd64 oder ia64 ist.
TraceView
TraceView verfügt über eine grafische Benutzeroberfläche.
Sie können Ablaufverfolgungsmeldungen an einen Kerneldebugger umleiten, wenn Sie eine Ablaufverfolgungssitzung erstellen. Klicken Sie auf der Seite Protokollsitzungsoptionen auf Erweiterte Protokollsitzungsoptionen, klicken Sie auf die Registerkarte Optionen für Protokollsitzungsparameter , und ändern Sie dann den Wert der Option Windbg in TRUE. Sie können diese Option nicht ändern, während die Ablaufverfolgungssitzung ausgeführt wird.
TraceView befindet sich im Unterverzeichnis tools\tracing\<Platform> des WDK, wobei <Platform> entweder i386, amd64 oder ia64 ist.