Share via


Ablaufverfolgungsbefehlssyntax

Das Ablaufverfolgungsprotokoll verfügt über Befehle (oder Aktionen), die eine Ablaufverfolgungssitzung starten, beenden und steuern.

Hinweis

Um eine Ablaufverfolgungssitzung zu steuern, müssen Sie Mitglied der Gruppe Leistungsprotokollbenutzer oder der Gruppe Administratoren auf dem Computer sein (Als Administrator ausführen).

    tracelog [actions] [options] | [-h | -help | -?] 

Parameter

Informationen zu den Tracelog-Parametern finden Sie unter [Aktionen] [Optionen].

[Aktionen]

-addautologger [LoggerName]
Konfiguriert die Registrierungseinträge für eine Automatische Protokollierungssitzung. Eine automatische Protokollierungssitzung ist die bevorzugte Methode zum Nachverfolgen der Aktivität eines Treibers oder eines anderen Ablaufverfolgungsanbieters während des Systemstarts. Sie müssen die Sitzungs-GUID mit der Option -sessionguid angeben. Der Befehl tracelog -addautologger verwendet die gleichen Optionen wie der Befehl Tracelog -start .

-capturestate [LoggerName]
Fordert alle Für LoggerName aktivierten Anbieter an, Zustandsinformationen zu protokollieren. Die aktivierten Schlüsselwörter helfen dabei, die Art der protokollierten Informationen zu bestimmen.

-disable [LoggerName]
Deaktiviert die angegebenen Ablaufverfolgungsanbieter. Wenn ein Anbieter deaktiviert ist, wird er weiterhin ausgeführt, aber er beendet das Generieren von Ablaufverfolgungsmeldungen.

Der Befehl tracelog -stop deaktiviert die Ablaufverfolgungsanbieter, bevor die Sitzung beendet wird. Sie müssen Anbieter nicht deaktivieren, bevor Sie eine Ablaufverfolgungssitzung beenden. Sie können jedoch den Befehl tracelog -disable verwenden, um ausgewählte Anbieter zu deaktivieren, ohne eine Ablaufverfolgungssitzung zu beenden.

Durch deaktivieren wird verhindert, dass der Ablaufverfolgungsanbieter Ablaufverfolgungsmeldungen an die Puffer der Ablaufverfolgungssitzung sendet, aber die Puffer werden nicht geleert oder die Ablaufverfolgungssitzung beendet. Verwenden Sie den Befehl tracelog -flush , um die Puffer zu leeren, und verwenden Sie den Befehl tracelog -stop oder tracelog -x (stop all), um die Ablaufverfolgungssitzung zu beenden.

Tracelog verwendet die EnableTrace-Funktion , um einen Tracelog -disable-Befehl zu implementieren. Weitere Informationen zu dieser Funktion finden Sie in der Dokumentation zu Microsoft Windows SDK.

-enable [LoggerName]
Aktiviert mindestens einen Ablaufverfolgungsanbieter für die LoggerName-Ablaufverfolgungssitzung.

Wenn Sie einen Anbieter aktivieren, generiert der Anbieter Ablaufverfolgungsmeldungen und sendet sie an die Puffer einer Ablaufverfolgungssitzung. Wenn der Anbieter nicht ausgeführt wird (oder nicht geladen wird), wenn Sie ihn aktivieren, registriert das System den Anbieter vorab, d. h., es reserviert Speicherplatz für den Anbieter in der ETW-Registrierungsdatenbank und speichert den Befehl enable. Wenn der Anbieter startet und sich tatsächlich registriert, empfängt er den gespeicherten Enable-Befehl und beginnt mit dem Senden von Ablaufverfolgungsmeldungen an die Sitzung.

Der Befehl tracelog -start aktiviert alle Anbieter, die durch den optionalen Parameter -guid im Befehl tracelog -start angegeben werden. Sie müssen keinen separaten Tracelog -enable-Befehl übermitteln.

Sie können den Befehl tracelog -enable verwenden, um einer ausgeführten Ablaufverfolgungssitzung einen Anbieter hinzuzufügen, die Flags und die Ebene für einen Anbieter zu ändern, während die Ablaufverfolgung erfolgt, oder um einen Anbieter, den Sie deaktiviert haben, mit einem Tracelog -disable-Befehl wieder zu aktivieren.

Wenn Sie den Befehl tracelog -enable verwenden, übermitteln Sie zuerst den Befehl tracelog -start , um die Ablaufverfolgungssitzung zu starten, und übermitteln Sie dann den Befehl tracelog -enable , um die Anbieter zu aktivieren.

Sie können einen ausgeführten Anbieter wiederholt aktivieren, ohne ihn zu deaktivieren. (Sie können dies tun, um die Flags und Ebenen zu ändern.)

Die Ablaufverfolgungsflags und die Ablaufverfolgungsebene, die Sie mit den Parametern -flag und -level angeben, werden an alle Ablaufverfolgungsanbieter übergeben, die durch den Parameter -guid dargestellt werden. Um unterschiedliche Flags und Ebenen für jeden Ablaufverfolgungsanbieter anzugeben, übermitteln Sie für jeden Anbieter einen separaten Tracelog -enable-Befehl mit eigenen Flag- und Leveleinstellungen.

Wenn Sie eines der NT-Kernelprotokollierungsflags (z. B. -noprocess, -nothread, -fio oder -cm) aktivieren, während eine Ablaufverfolgungssitzung für die globale Protokollierung ausgeführt wird, wird die globale Protokollierungssitzung in eine NT Kernel Logger-Ablaufverfolgungssitzung konvertiert. Dieses Feature dient zum Nachverfolgen von Kernelereignissen während des Startvorgangs.

-enableex [LoggerName]
Identisch mit -enable. Diese Option kann in zukünftigen Versionen von Tracelog entfernt werden.

-enumguid
Listet Anbieter auf dem System auf, die bei der Ereignisablaufverfolgung für Windows (ETW) registriert sind. Eine Beschreibung der Enumguid-Anzeige finden Sie unter Tracelog Enumguid Display.

Tracelog verwendet die EnumerateTraceGuids-Funktion , um den Befehl tracelog -enumguid zu implementieren. Weitere Informationen zu dieser Funktion finden Sie in der Dokumentation zu Microsoft Windows SDK.

-enumguidex [#guid]
Listet Anbieter auf dem System auf, die bei der Ereignisablaufverfolgung für Windows (ETW) registriert sind. Eine Beschreibung der EnumguidEx-Anzeige finden Sie unter Tracelog Enumguid Display.

Tracelog verwendet die EnumerateTraceGuidsEx-Funktion , um den Befehl tracelog -enumguidex zu implementieren. Weitere Informationen zu dieser Funktion finden Sie in der Dokumentation zu Microsoft Windows SDK.

-flush [LoggerName]
Leert die aktiven Puffer der LoggerName-Ablaufverfolgungssitzung . Wenn LoggerName nicht angegeben ist, leert Tracelog die Puffer der NT Kernel Logger-Ablaufverfolgungssitzung.

Diese erzwungene Leerung kommt zusätzlich zu den Leerungen hinzu, die automatisch auftreten, wenn ein Ablaufverfolgungsnachrichtenpuffer voll ist und die Ablaufverfolgungssitzung beendet wird, und zusätzlich zu den Leerungen, die vom Leerungstimer (-ft) aktiviert werden.

Wenn Sie die Puffer einer Ablaufverfolgungssitzung leeren, werden die Ereignisse in den Puffern sofort an das Ablaufverfolgungsprotokoll oder den Ablaufverfolgungsconsumer übermittelt.

Durch das Leeren wird der Ablaufverfolgungsanbieter nicht deaktiviert oder die Ablaufverfolgungsmeldungen umgeleitet. Nachdem die Puffer geleert wurden, schreibt der Ablaufverfolgungsanbieter weiterhin Ereignisse in die Puffer.

Tracelog verwendet die FlushTrace-Funktion , um einen Tracelog -flush-Befehl zu implementieren. Weitere Informationen zu dieser Funktion finden Sie in der Dokumentation zu Microsoft Windows SDK.

Sie können den Befehl tracelog -flush mit der Option -fLogfile verwenden, um die Ablaufverfolgungsmeldungen, die sich derzeit im Puffer befinden, in die angegebene Ablaufverfolgungsprotokolldatei (ETL) zu leeren. Dieser Parameter ist nur für gepufferte Ablaufverfolgungssitzungen (-buffering) gültig. Für andere Ablaufverfolgungssitzungstypen wird der Parameter -f ignoriert.

Diese Leerung wirkt sich nur auf den aktuellen Inhalt des Puffers aus. Zukünftige Ablaufverfolgungsmeldungen werden nicht an das Ablaufverfolgungsprotokoll umgeleitet.

-l [-lp]
Listet die Eigenschaften aller Ablaufverfolgungssitzungen auf, die auf dem Computer ausgeführt werden.

Wenn Sie die Option -lp übergeben, listet Tracelog auch alle Anbieter auf, die für jede Sitzung aktiviert sind.

-q [LoggerName] [-lp]
Listet die Eigenschaften der angegebenen Ablaufverfolgungssitzung auf (abfragen). Wenn Sie LoggerName nicht angeben, fragt Tracelog die NT Kernel Logger-Ablaufverfolgungssitzung ab.

Wenn Sie die Option -lp übergeben, listet Tracelog auch alle für die Sitzung aktivierten Anbieter auf.

-remove GlobalLogger
Entfernt die Registrierungswerte für eine Globale Protokollierungsablaufverfolgungssitzung, und initialisiert sie erneut. Er legt den Wert des Starteintrags auf 0 (nicht starten) fest und löscht die anderen Registrierungseinträge. Der Befehl tracelog -remove funktioniert nur für globale Protokollierungsablaufverfolgungssitzungen. Alle anderen Sitzungsnamenwerte sind ungültig.

Der Befehl tracelog -remove ist nicht erforderlich. Wenn Sie den Wert des Starteintrags jedoch nicht auf 0 festlegen, wird bei jedem Neustart des Systems eine globale Protokollierungssitzung gestartet.

Wenn Sie keinen Tracelog -remove-Befehl verwenden, befinden sich die Optionen aus der vorherigen Sitzung weiterhin in der Registrierung, und sie werden für die neue Sitzung verwendet, es sei denn, Sie übermitteln einen Tracelog -start-Befehl mit unterschiedlichen Werten für dieselben Optionen.

-start [LoggerName]
Startet eine Ablaufverfolgungssitzung mit dem LoggerName , den Sie zur Darstellung der Ablaufverfolgungssitzung auswählen.

Verwenden Sie GlobalLogger als LoggerName , um eine globale Protokollierungsablaufverfolgungssitzung anzugeben. Die Sitzung wird gestartet, wenn Sie den Computer neu starten.

LoggerName kann ein beliebiger Name sein, der den Windows-Benennungsrichtlinien entspricht, bis zu 1.024 Zeichen. Wenn der Name Leerzeichen enthält, schließen Sie den Namen in Anführungszeichen ein. Beim Ablaufverfolgungsprotokoll wird die Groß-/Kleinschreibung nicht beachtet.

Der Standardwert ist "NT Kernel Logger". Wenn Sie diesen Parameter weglassen, startet Tracelog eine NT Kernel Logger-Ablaufverfolgungssitzung und deklariert einen Fehler, wenn Sie den Parameter -guid verwenden, um einen anderen Ablaufverfolgungsanbieter anzugeben.

-stop [LoggerName]
Deaktiviert die Anbieter in der angegebenen Ablaufverfolgungssitzung und beendet dann die Sitzung.

Der Befehl tracelog -stop deaktiviert die Ablaufverfolgungsanbieter und beendet die Ablaufverfolgungssitzung. Mit dem Befehl tracelog -disable werden nur die Ablaufverfolgungsanbieter deaktiviert.

Wenn Sie eine globale Startzeitprotokollierungssitzung starten, die Kernelereignisse nachverfolgt, müssen Sie den Befehl tracelog -stop "NT Kernel Logger" oder tracelog -stop GlobalLogger verwenden, um ihn zu beenden. Wenn Sie einen der Befehle verwenden, um eine Ablaufverfolgungssitzung der globalen Protokollierungs-Ablaufverfolgungssitzung zu beenden, beendet Tracelog den Anbieter, aber die Werte der Registrierungseinträge werden nicht zurückgesetzt. Verwenden Sie tracelog -remove, um die Werte der Global Logger-Registrierungseinträge zurückzusetzen.

-systemrundown [LoggerName]
Fordert den SystemTraceProvider auf, Rundownereignisse zu protokollieren, die für die LoggerName-Sitzung gerichtet sind. Informationen zum Starten einer Ablaufverfolgungssitzung finden Sie unter Konfigurieren und Starten einer SystemTraceProvider-Sitzung .

Dieser Befehl ist nur unter Windows 8 und höheren Versionen von Windows verfügbar.

Timeoutwert
Gibt den Timeoutwert in Millisekunden (ms) an, der verwendet werden soll, wenn Anbieter mit dem Befehl tracelog -enable aktiviert werden. Das Standardtimeout ist 0.

Wenn der Timeoutwert 0 ist, ruft das Ablaufverfolgungsprotokoll den Aktivierungsrückruf jedes Anbieters auf und gibt sofort zurück, ohne auf den Abschluss des Rückrufs zu warten.

Um Anbieter synchron zu aktivieren, geben Sie einen Timeoutwert an. Wenn Sie einen Timeoutwert angeben, wartet Tracelog, bis der Aktivierungsrückruf jedes Anbieters beendet wird oder das Timeout abläuft.

Wenn Sie mehrere Anbieter gleichzeitig aktivieren, wird das Timeout sequenziell auf jeden angewendet.

-update [LoggerName]
Der Befehl tracelog -update ändert die Eigenschaften einer Ablaufverfolgungssitzung, während sie ausgeführt wird.

In einem Tracelog -update-Befehl ist der Parameter -guid nur gültig, wenn eine private Ablaufverfolgungssitzung (-um) aktualisiert wird. Verwenden Sie die Befehle tracelog -enable und tracelog -disable , um anbieter aus einer Standardablaufverfolgungssitzung hinzuzufügen oder zu entfernen, während die Sitzung ausgeführt wird.

Wenn Sie eine Ablaufverfolgungsprotokollsitzung (-f) starten, können Sie zu einer Echtzeitsitzung (-rt) aktualisieren, aber nachrichten werden weiterhin zusätzlich zum Ablaufverfolgungsconsumer an das Ablaufverfolgungsprotokoll gesendet. Sie können das Protokoll nicht durch Aktualisieren aus der Sitzung entfernen. Bevor Sie jedoch einer Ablaufverfolgungsprotokollsitzung die Nachrichtenübermittlung in Echtzeit hinzufügen können, müssen Sie zuerst den Befehl tracelog -flush verwenden, um die Puffer zu leeren.

Wenn Sie eine Echtzeitsitzung (-rt) starten und dann in eine Ablaufverfolgungsprotokollsitzung (-f) aktualisieren, werden neue Ablaufverfolgungsmeldungen nicht mehr direkt an den Ablaufverfolgungsconsumer gesendet. sie werden nur an das Ablaufverfolgungsprotokoll gesendet. Verwenden Sie zum Hinzufügen eines Ablaufverfolgungsprotokolls zu einer Ablaufverfolgungssitzung in Echtzeit sowohl -rt als auch -f im Befehl tracelog -update . Bevor Sie einer Ablaufverfolgungsprotokollsitzung die Nachrichtenübermittlung in Echtzeit hinzufügen können, müssen Sie zuerst den Befehl tracelog -flush verwenden, um die Puffer zu leeren.

Sie können eine Globale Protokollierungsablaufverfolgungssitzung nicht aktualisieren.

Für eine private Ablaufverfolgungssitzung (Benutzermodus) können Sie nur den Namen der Protokolldatei (-f) und den Leerungstimerwert (-ft) aktualisieren.

Um die Flags und Ebenen zu aktualisieren, verwenden Sie den Befehl tracelog -enable , um den Anbieter mit neuen Flags oder Ebenen erneut zu aktivieren.

Tracelog verwendet die ControlTrace-Funktion , um einen Tracelog -update-Befehl zu implementieren. Weitere Informationen zu dieser Funktion finden Sie in der Dokumentation zu Microsoft Windows SDK.

[Optionen]

-addtotriagedump

Hinweis

Diese Option sollte nur verwendet werden, wenn Sie möglicherweise Ereignisse aus einem Kernelabbild mithilfe des Debuggers anzeigen müssen.

Gibt an, dass alle aktiven Puffer für die Sitzung verfügbar sind, um einem Selektierungsspeicherabbild hinzugefügt zu werden. Selektierungsabbilder sind in ihrer Größe begrenzt, und wenn die Puffer der Sitzung dazu führen, dass das Speicherabbild seine maximale Größe überschreitet, werden die Puffer weggelassen.

-Anfügen
Fügt die Ablaufverfolgungsmeldungen an die Etl-Datei (Ereignisablaufverfolgungsprotokoll) an, die durch den Parameter -f angegeben wird. Standardmäßig wird eine neue Datei erstellt.

Dieser Parameter ist nur in Befehlen gültig, die -f enthalten und nicht -rt oder -cir enthalten.

-bBufferSize
Gibt die Größe jedes Puffers, der der Ablaufverfolgungssitzung zugeordnet ist, in KB an. Der Standardwert wird durch die Anzahl der Prozessoren, die Menge des physischen Arbeitsspeichers und das verwendete Betriebssystem bestimmt.

-btn
Gibt die Anzahl (n) von Puffern an, die ausgefüllt werden sollen, bevor sie mit dem Leeren beginnen. Diese Option ist ab Windows 8.1 verfügbar.

-Pufferung
Startet eine gepufferte Ablaufverfolgungssitzung.

In einer gepufferten Ablaufverfolgungssitzung werden die Ablaufverfolgungsmeldungen in den Ablaufverfolgungspuffern aufbewahrt. Sie werden nicht an einen Ablaufverfolgungsconsumer gesendet oder in einem Ablaufverfolgungsprotokoll aufgezeichnet.

-cirMaxFileSize
Gibt die zirkuläre Protokollierung (am Ende der Datei neue Nachrichten über die ältesten Nachrichten aufzeichnen) in der Ereignisablaufverfolgungsprotokolldatei (ETL) an. MaxFileSize gibt die maximale Größe der Datei in MB an. Ohne einen MaxFileSize-Wert wird dieser Parameter ignoriert.

Der Standardwert ist die sequenzielle Protokollierung ohne Dateigrößenbeschränkung.

-Cm
Ermöglicht die Ablaufverfolgung des Registrierungszugriffs (Configuration Manager). Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

-critsec
Verfolgt kritische Abschnittsereignisse für einen Prozess in einer privaten Ablaufverfolgungssitzung nach. Sie können eine kritische Abschnittsprozessprotokollierung für jeden Beliebigen Benutzermodusprozess starten, auch wenn er nicht für die Ablaufverfolgung instrumentiert ist.

Verwenden Sie -pids , um den Prozess anzugeben. Verwenden Sie -guid nicht mit -critsec. Das System definiert eine benutzerdefinierte GUID (CritSecGuid) für kritische Abschnittsablaufverfolgungen. Sie können -heap und -critsec nicht im gleichen Befehl verwenden.

-dpcisr
Ermöglicht die Ablaufverfolgung von verzögerten Prozeduraufrufen (DpCs), Interrupt Service Requests (ISRs), Imageladeereignissen (-img) und Kontextwechseln im Kernel. Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

Diese Option wird nur in der Version von Tracelog unterstützt, die im Windows Driver Kit für Windows Vista und höheren Versionen des WDK enthalten ist. Die Option –dpcisr kann nicht mit der Option -eflag verwendet werden.

Verwenden Sie den Parameter -UsePerfCounter mit -dpcisr. Dieser Parameter, der einen eindeutigen Zeitstempel für jedes Ereignis bereitstellt, wird von Tracerpt benötigt, einem Tool, das zum Formatieren und Interpretieren von DPC/ISR-Ereignissen verwendet wird. Informationen zum Interpretieren und Formatieren dieser Ereignisse finden Sie weiter unten unter "Kommentare".

-eflagn [flag...]
Aktiviert Kernelereignisse mithilfe zusätzlicher Flags für NT Kernel Logger-Ablaufverfolgungssitzungen, insbesondere die Flags, um die Ablaufverfolgung von DPC-, ISR- und Kontextwechselereignissen zu ermöglichen. Die Option -eflag kann nicht mit der Option –dpcisr verwendet werden.

-enablepropertyn
Beschreibungen und unterstützte Werte finden Sie in der Beschreibung von EnabledProperties in der EnableParameters-Struktur , die als Parameter an EnableTraceEx2 übergeben wird.

-EventIdFilter {-in-out|} **** n **** id1 id2 ...
Gibt einen Ereignis-ID-Filter mit n Ereignis-IDs an (maximal 64 Zulässige Ereignis-IDs). Diese Option ist ab Windows 8.1 verfügbar.

-ExeFilterExecutable_file [;Executable_file ...]
Gibt die Namen der zu filternden ausführbaren Dateien an. Sie können eine Liste von Dateien angeben. Trennen Sie die Namen der Dateien mithilfe von Semikolons. Nicht aufgeführte Dateien werden ausgeschlossen. Diese Option ist ab Windows 8.1 verfügbar.

-f [LogFile]
Startet eine Ablaufverfolgungsprotokollsitzung. LogFile gibt den Pfad (optional) und den Dateinamen der Ereignisablaufverfolgungsprotokolldatei (ETL) an. Der Standardwert ist C:\LogFile.etl. Um die Datei auf einem Remotecomputer zu platzieren, fügen Sie den Computernamen oder die IP-Adresse in den Pfad ein.

Wenn Sie -rt mit -f verwenden, werden die Ablaufverfolgungsmeldungen an den Consumer und an eine Ereignisablaufverfolgungsprotokolldatei gesendet. Sie können -rt oder -f nicht mit -buffering verwenden.

-Fio
Aktiviert die Ablaufverfolgung von Datei-E/A-Ereignissen. Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

-flagFlag

Hinweis

Flags wurden durch Schlüsselwörter ersetzt. Verwenden Sie -matchanykw , es sei denn, Sie aktivieren einen WPP-Anbieter.

Gibt die Ablaufverfolgungsflags für die Anbieter in der Ablaufverfolgungssitzung an. Der Flagwert bestimmt, welche Ereignisse vom Ablaufverfolgungsanbieter generiert werden.

Flag stellt einen im Ablaufverfolgungsanbieter definierten Flagwert im Dezimal- oder Hexadezimalformat dar. Der Standardwert ist 0. Werte von 0x01000000 bis 0xFF000000 sind für die zukünftige Verwendung reserviert.

Die Bedeutung des Flagwerts wird unabhängig von jedem Ablaufverfolgungsanbieter definiert. In der Regel stellen Flags immer detailliertere Berichtsebenen dar.

Der in einem Tracelog -start-Befehl angegebene Flagwert gilt für alle Ablaufverfolgungsanbieter in der Ablaufverfolgungssitzung. Verwenden Sie tracelog -enable, um unterschiedliche Flags für jeden Ablaufverfolgungsanbieter festzulegen.

-ftFlushTime
Gibt an, wie oft die Ablaufverfolgungsmeldungspuffer in Sekunden geleert werden. Die minimale Leerungszeit beträgt 1 Sekunde. Der Standardwert ist 0 (keine erzwungene Leerung).

Diese erzwungene Leerung erfolgt zusätzlich zu den Leerungen, die automatisch auftreten, wenn ein Ablaufverfolgungsnachrichtenpuffer voll ist und eine Ablaufverfolgungssitzung beendet wird.

Weitere Informationen finden Sie unter dem Befehl tracelog -flush.

-guid {#GUID | datei | *name}
Aktiviert die angegebenen Ablaufverfolgungsanbieter.

Wenn eine Datei angegeben ist, aktiviert Tracelog die Ablaufverfolgung für alle in der Datei angegebenen Anbieter. Die Datei muss wie folgt formatiert sein:

; comment line
guid1;matchanykeyword;level
guid2;matchanykeyword;level

Wenn eine Anbieter-GUID angegeben wird, muss der GUID ein Nummernzeichen (#) vorangestellt werden.

Wenn ein Anbietername angegeben wird, muss dem Namen ein Sternchen (*) vorangestellt werden. Der Name wird dann mit demselben Algorithmus wie in eine GUID konvertiert. NET-Ereignisquelle. Diese GUID wird dann verwendet, um den Anbieter zu aktivieren.

Wenn Sie diesen Parameter weglassen, senden keine Ablaufverfolgungsanbieter Nachrichten an die Ablaufverfolgungssitzung. Nach dem Starten der Ablaufverfolgungssitzung können Sie jedoch den Befehl tracelog -enable verwenden, um einen oder mehrere Ablaufverfolgungsanbieter für die Sitzung zu aktivieren.

-Gs
Generiert eine globale Sequenznummer für jede Ablaufverfolgungsnachricht.

Globale Sequenznummern sind für alle Ablaufverfolgungssitzungen auf dem Computer eindeutig. Standardmäßig gibt es keine Sequenznummern.

Dieser Parameter ist mit der NT Kernel Logger-Ablaufverfolgungssitzung ungültig.

-Heap
Verfolgt Heapspeicherereignisse für einen Benutzermodusprozess nach. Sie können eine Heapprozessprotokollierung für jeden Beliebigen Benutzermodusprozess starten, auch für einen Prozess, der nicht für die Ablaufverfolgung instrumentiert ist.

Verwenden Sie -pids , um den Prozess anzugeben. Verwenden Sie -guid nicht mit -heap. Das System definiert eine benutzerdefinierte GUID (HeapGuid) für Heapspeicherablaufverfolgungen. Sie können -heap und -critsec nicht im gleichen Befehl verwenden.

-Hf
Ermöglicht die Ablaufverfolgung von HardPagefehlern (Seitenfehler, für die der Datenträgerzugriff behoben werden muss). Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

-hybridshutdown {stop|persist}
Steuert das Verhalten der Hybrid-Protokollierung beim Herunterfahren. Diese Option ist ab Windows 8 verfügbar.

Stop bewirkt, dass die Sitzung beendet wird, wenn das System ein hybrides Herunterfahren durchführt. Persist führt dazu, dass die Sitzung fortgesetzt wird, nachdem das System bei einem hybriden Herunterfahren erneut gestartet wird.

-Img
Aktiviert die Ablaufverfolgung von Bildladeereignissen. Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

-Unabhängig

Hinweis

Der unabhängige Modus sollte für jede Ablaufverfolgungssitzung aktiviert sein.

Aktiviert den unabhängigen Modus für die Ablaufverfolgungssitzung. Im unabhängigen Modus kann die Sitzung Ereignisse sammeln, die von anderen Sitzungen im nicht unabhängigen Modus gelöscht wurden. Diese Option ist ab Windows 8.1 verfügbar.

-Kb
Verwenden Sie Kilobyte (KB) für die Protokolldateigröße. Der Standardwert ist Megabyte (MB).

-Kd
Leitet die Ablaufverfolgungsmeldungen an KD oder Windbg um, je nachdem, was angefügt ist. Dieser Parameter legt auch die Größe des Ablaufverfolgungspuffers auf 3 KB fest, die maximale Puffergröße für den Debugger, und ignoriert alle -b-Parameter im Befehl.

Der Debugger muss ausgeführt werden, wenn Sie einen Tracelog-Befehl mit -kd übermitteln. Andernfalls reagiert tracelog nicht mehr.

Informationen zum Anzeigen von Ablaufverfolgungsmeldungen in einem Kerneldebugger finden Sie unter Kommentare.

-Lbr *EventName[**+EventName+...]:Filter[,*Filter,...]
Konfigurieren sie die LBR-Ablaufverfolgung für Kernelereignisse.

Verwenden Sie die -eflag-Hilfe für eine Liste von Kernelereignissen.

-Leveln
Gibt die Ablaufverfolgungsebene für die Anbieter in der Ablaufverfolgungssitzung an. Die Ebene bestimmt, welche Ereignisse der Ablaufverfolgungsanbieter generiert.

Level stellt einen Ebenenwert im Dezimal- oder Hexadezimalformat dar. Der Standardwert ist 0.

Die Bedeutung des Ebenenwerts wird unabhängig von jedem Ablaufverfolgungsanbieter definiert. In der Regel stellt die Ablaufverfolgungsebene den Schweregrad des Ereignisses (Informationen, Warnung oder Fehler) dar.

Der in einem Tracelog -start-Befehl angegebene Levelwert gilt für alle Ablaufverfolgungsanbieter in der Ablaufverfolgungssitzung. Verwenden Sie tracelog -enable, um unterschiedliche Ebenen für jeden Ablaufverfolgungsanbieter festzulegen.

-lowcapacity

Hinweis

Diese Option sollte nur verwendet werden, wenn dies zur Verringerung der Speicherkosten erforderlich ist. Wenn Sie diese Option verwenden, wird jedes Ereignis langsamer protokolliert.

Verwendet jeweils einen einzelnen Puffer, um Ereignisse zu sammeln, die auf mehreren Prozessoren generiert werden. Mit dieser Option wird der EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING-Protokollierungsmodus ausgewählt. Weitere Informationen finden Sie im Windows SDK.

-Ls
Generiert eine lokale Sequenznummer für jede Ablaufverfolgungsnachricht.

Lokale Sequenznummern sind innerhalb einer Ablaufverfolgungssitzung eindeutig. Standardmäßig gibt es keine Sequenznummern.

Dieser Parameter ist mit der NT Kernel Logger-Ablaufverfolgungssitzung ungültig.

-maxNumberOfBuffers
Gibt die maximale Anzahl von Puffern an, die Tracelog der Ablaufverfolgungssitzung zuordnet. Der Standardwert wird durch die Anzahl der Prozessoren, die Menge des physischen Arbeitsspeichers und das verwendete Betriebssystem bestimmt.

-matchallkwn
Gibt die MatchAllKeyWord-Bitmaske an, die die Kategorie von Ereignissen einschränkt, die der Anbieter schreibt und in Verbindung mit der Option -matchanykw verwendet wird.

Diese Bitmaske ist optional. Wenn die Schlüsselwort (keyword) des Ereignisses die in der Option -matchanykw angegebene Bedingung erfüllt, schreibt der Anbieter das Ereignis nur, wenn alle Bits in dieser Maske im Schlüsselwort (keyword) des Ereignisses vorhanden sind. Diese Maske wird nicht verwendet, wenn -matchanykw null ist.

Tracelog übergibt den Wert n im MatchAllKeyWord-Parameter des EnableTraceEx2-Funktionsaufrufs . Weitere Informationen finden Sie im Windows SDK.

-matchanykwn
Gibt die MatchAnyKeyword-Bitmaske an, die die Kategorie der Ereignisse bestimmt, die der Anbieter schreibt.

Der Anbieter schreibt das Ereignis, wenn eines der Schlüsselwort (keyword) Bits des Ereignisses mit einem der in dieser Maske festgelegten Bits übereinstimmt. Tracelog übergibt den Wert n im MatchAnyKeyWord-Parameter des EnableTraceEx2-Funktionsaufrufs . Weitere Informationen finden Sie im Windows SDK.

-minNumberOfBuffers
Gibt die Anzahl der Puffer an, die ursprünglich für das Speichern von Ablaufverfolgungsmeldungen zugewiesen wurden. Wenn die Puffer voll sind, ordnet Tracelog weitere Puffer zu, bis das Maximum erreicht wird. Der Standardwert wird durch die Anzahl der Prozessoren, die Menge des physischen Arbeitsspeichers und das verwendete Betriebssystem bestimmt.

-newfileMaxFileSize
Erstellt eine neue Etl-Datei (Ereignisablaufverfolgungsprotokoll), wenn die vorhandene Datei MaxFileSize erreicht. MaxFileSize gibt die maximale Größe jeder Protokolldatei in MB an. Ohne einen MaxFileSize-Wert wird dieser Parameter ignoriert.

Wenn Sie -newfile verwenden, müssen Sie auch den LogFile-Parameter -f verwenden, und der Wert von LogFile muss ein Name sein, der die Zeichen %d enthält, um ein Dezimalmuster anzugeben, z. B. trace%d.etl. Andernfalls schlägt der Befehl mit ERROR_INVALID_NAME fehl. Windows erhöht den Dezimalwert im Dateinamen jedes Mal, wenn eine neue Datei erstellt wird.

Dieser Parameter ist für preallocation (-prealloc), zirkuläre Protokollierung (-cir), mit der NT Kernel Logger-Sitzung oder für private Ablaufverfolgungssitzungen ungültig.

-nodisk
Deaktiviert die Ablaufverfolgung von E/A-Ereignissen auf physischen Datenträgern. Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

-nonet
Deaktiviert die Ablaufverfolgung von TCP/IP- und UDP-Ereignissen (User Datagram Protocol). Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

-noprocess
Deaktiviert die Ablaufverfolgung des Anfangs- und Endes jedes Prozesses. Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

-nothread
Deaktiviert die Ablaufverfolgung von Start und Ende jedes Threads. Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

-Paged
Verwendet auslagerungsfähigen Arbeitsspeicher für die Ablaufverfolgungsmeldungspuffer. Standardmäßig verwendet die Ereignisablaufverfolgung nicht ausseitigen Arbeitsspeicher für Puffer.

Anbieter, die nicht ausgelagerten Arbeitsspeicher benötigen, können keine Ereignisse in einer Sitzung protokollieren, die ausgelagerten Arbeitsspeicher verwendet.

-pids#PIDs PID [PID...]
Gibt die Benutzermodusprozesse an, in denen ein Heapspeicher oder eine kritische Abschnittsablaufverfolgungssitzung ausgeführt wird. Nur mit -heap oder -critsec gültig.

#PIDs gibt die Anzahl der Mit diesem Parameter aufgeführten Prozess-IDs an. PID stellt einen Prozessbezeichner dar. Mit diesem Parameter können Sie bis zu zehn PIDs angeben.

Listen Sie mehrere PIDs auf, wenn der Anbieter in mehr als einem Prozess ausgeführt wird, z. B. wenn ein einzelnes Programm mehrere Prozesse erstellt.

-PidFilternpid1 pid2 ...
Gibt einen Pid-Filter mit n Pids an (maximal 8 zulässig). Diese Option ist ab Windows 8.1 verfügbar.

-Pf
Aktiviert die Ablaufverfolgung aller Seitenfehler. Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

-PkgIdFilterPackage Full Name [ **;**Package Full Name...]
Gibt einen Paket-ID-Filter an. Sie können eine Liste von Paketdateien angeben. Trennen Sie die Namen der Dateien mithilfe von Semikolons.

-PkgAppIdFilterPRAID [**;**PRAID...]
Gibt einen PRAID-Filter (Package Relative App Identifier) an. Die PRAID ist der eindeutige Bezeichner der Anwendung innerhalb des Pakets. Sie können mehr als eine PRAID angeben. Trennen Sie die IDs mithilfe von Semikolons. Diese Option ist für UWP-Apps ab Windows 8.1 verfügbar.

-PmcCtr1,Ctr2,...:Name+Name+...
Konfiguriert die PMC-Stichprobenentnahme (Performance Monitor Counter) für die angegebenen Kernelereignisse. Diese Option ist ab Windows 8 verfügbar.

Verwenden Sie die -ProfileSource-Hilfe für eine Liste von Leistungsindikatoren. Verwenden Sie die -eflag-Hilfe für eine Liste von Kernelereignissen.

-prealloc
Reserviert Speicherplatz für die ETL-Datei, bevor die Sitzung gestartet wird.

Dieser Parameter erfordert -seq oder -cir mit MaxFileSize. Dies ist mit -newfile ungültig.

-ProfileSourcesrc
Konfigurieren Sie die zu verwendende Profilerstellungsquelle. Verwenden Sie für die Liste der Quellen den Befehl tracelog -ProfileSource Help. Diese Option ist ab Windows 8 verfügbar.

Diese Option ist nur unter Windows 8 und höheren Versionen von Windows verfügbar.

-Rt
Startet eine Echtzeit-Ablaufverfolgungssitzung. (Eine Ablaufverfolgungsprotokollsitzung (-f) ist die Standardeinstellung.)

Wenn Sie -rt und -f verwenden, werden die Ablaufverfolgungsmeldungen an den Ablaufverfolgungsconsumer und an eine Ereignisablaufverfolgungsprotokolldatei gesendet. Sie können -rt oder -f nicht mit -buffering verwenden. Weitere Informationen finden Sie unter Ablaufverfolgungssitzung.

-Sichere
Aktiviert die Ablaufverfolgung im sicheren Modus. Mit dieser Option wird der EVENT_TRACE_SECURE_MODE-Protokollierungsmodus ausgewählt. Beschränkt, wer Ereignisse in der Sitzung protokollieren kann, auf diejenigen mit TRACELOG_LOG_EVENT Berechtigung.

-sessionguid
Gibt den Registrierungswert der automatischen Sitzungs-GUID an.

-SetProfIntn **** src

Wichtig

Es wird nicht empfohlen, das Profilerstellungsintervall zu ändern.

Konfigurieren Sie das Profilerstellungsintervall (n) für die angegebene Quelle, wobei n in Einheiten von 100ns liegt. Der Standardwert ist 10000 (entspricht 1 ms). Diese Option ist ab Windows 8 verfügbar.

-seqMaxFileSize
Gibt die sequenzielle Protokollierung (am Dateiende, Aufzeichnung von Ereignissen beenden) für die Ereignisablaufverfolgungsprotokolldatei (ETL) an. MaxFileSize gibt die maximale Größe der Datei in MB an. Ohne einen MaxFileSize-Wert wird dieser Parameter ignoriert.

Die sequenzielle Protokollierung ist die Standardeinstellung, aber Sie können diesen Parameter verwenden, um die maximale Dateigröße festzulegen oder -prealloc zu verwenden. Ohne diesen Parameter gibt es keine Dateigrößenbeschränkung.

-sourceguidSourceGuid
Gibt die GUID an, die als SourceId-Parameter an die Funktionen EnableTraceEx oder EnableTraceEx2 übergeben wird. Die SourceId identifiziert die Sitzung, die den Anbieter aktiviert hat.

-stackwalk [Ereignisse]
Gibt Kernelereignisse an, auf die Stapel gesammelt werden sollen. Verwenden Sie die -eflag-Hilfe für eine Liste von Kernelereignissen. Dieser Parameter ist nur für die NT-Kernelprotokollierungs- oder Systemprotokollierungsablaufverfolgungssitzungen gültig.

-StackWalkFilter {-in-out|}nid1 id2 ...
Gibt einen Ereignis-ID-Filter mit n Ereignis-IDs an (maximal 64 Ereignis-IDs zulässig). Diese Option ist ab Windows 8.1 verfügbar.

-systemlogger
Die Protokollierung kann SystemTraceProvider-Ereignisse empfangen. Weitere Informationen finden Sie unter Konfigurieren und Starten einer SystemTraceProvider-Sitzung. Diese Option ist ab Windows 8 verfügbar.

-um
Gibt eine private Ablaufverfolgungssitzung an. Dieser Parameter ist für eine private Ablaufverfolgungssitzung erforderlich.

-UseCPUCycle
Verwendet die Prozessorhäufigkeit (auch als "CPU-Ticks" bezeichnet), um die Zeit der einzelnen Ablaufverfolgungsmeldungen zu messen.

Dieser Timer bietet die höchstmögliche Auflösung, ist aber so empfindlich, dass er fehleranfällig ist, insbesondere auf energieverwalteten Systemen und Multiprozessorcomputern. Wenn Sie diesen Timer beispielsweise auf einem Computer angeben, der über einen Arm-Prozessor verfügt, kann dies zu Fehlreihenfolgeereignissen führen. Stattdessen wird -UsePerfCounter für die Ablaufverfolgung mit hoher Auflösung empfohlen.

-UsePerfCounter ist der Standardtimer für die Ereignisablaufverfolgung.

-UsePerfCounter
Zeichnet den Wert der hochauflösenden Leistungsindikatoruhr anstelle der Systemzeit mit niedrigerer Auflösung mit jeder Ablaufverfolgungsmeldung auf.

Da die Leistungsindikatoruhr in etwa 100 Nanosekundeneinheiten zählt, wird für jedes Ereignis ein eindeutiger Zeitstempel bereitgestellt.

-UsePerfCounter ist der Standardtimer für die Ereignisablaufverfolgung.

-UseSystemTime
Zeichnet die Systemzeit anstelle der hochauflösenden Leistungsindikatoruhrzeit mit jeder Ablaufverfolgungsmeldung auf. Da der Systemtimer eine Auflösung von 10 Millisekunden hat (im Vergleich zu 100 Nanosekunden für die Leistungsindikatoruhr), können mehrere Ereignisse die gleiche Systemzeit haben.

-UsePerfCounter ist der Standardtimer für die Ereignisablaufverfolgung.

-? | Hilfe | -?
Zeigt Nutzungsinformationen an.

Kommentare

Die folgenden Kommentare gelten für mehrere der Tracelog-Befehle.

Syntaxfehler

Das Ablaufverfolgungsprotokoll zeigt keine Fehler für alle falschen Syntaxkombinationen an, z. B. wenn Sie versuchen, eine Einstellung zu aktualisieren, die nicht geändert werden kann. Stattdessen werden die ungültigen Teile des Befehls ignoriert und eine Erfolgsmeldung angezeigt.

Systemprotokollierung

Windows verwendet Ablaufverfolgungssitzungen für viele Zwecke, von denen einige für den ordnungsgemäßen Betrieb wichtig sind. Beenden Sie keine Ablaufverfolgungssitzungen, die Sie nicht gestartet haben.

Enumguid

Um zu bestimmen, ob ein Befehl tracelog -start oder tracelog -enable erfolgreich war, verwenden Sie den Befehl tracelog -enumguid , um zu bestimmen, ob die Anbieter aktiviert wurden, und verwenden Sie dann einen Tracelog -l (List) -Befehl, um die Eigenschaften der Ablaufverfolgungssitzung zu untersuchen.

Echtzeit- und Protokollsitzungen

Eine Ablaufverfolgungssitzung kann sowohl eine Echtzeit-Ablaufverfolgungssitzung als auch eine Ablaufverfolgungsprotokollsitzung sein. Wenn Sie die Parameter -rt (Echtzeit) und -f (Protokollsitzung) in den gleichen Befehl einschließen, sendet das System den Pufferinhalt sowohl an das Protokoll als auch an einen Ablaufverfolgungsconsumer. Bevor Sie jedoch einer Ablaufverfolgungsprotokollsitzung die Nachrichtenübermittlung in Echtzeit hinzufügen können, müssen die Puffer mit dem Befehl tracelog -flush geleert werden.

Wenn Sie eine Echtzeitsitzung (-rt) starten und dann auf eine Protokollsitzung (-f) aktualisieren, werden alle neuen Ablaufverfolgungsmeldungen nur an die Protokolldatei gesendet. Um einer Echtzeitsitzung eine Protokolldatei hinzuzufügen, verwenden Sie sowohl -rt als auch -f im Befehl tracelog -update .

Wenn Sie eine Protokollsitzung (-f) starten, können Sie auf eine Echtzeitsitzung (-rt) aktualisieren, aber nachrichten werden weiterhin zusätzlich zum Ablaufverfolgungsconsumer an das Protokoll gesendet. Sie können das Protokoll nicht durch Aktualisieren aus der Sitzung entfernen.

Zum Anzeigen oder Speichern von Ablaufverfolgungsmeldungen aus einer reinen Echtzeitsitzung können Sie auch einen Ablaufverfolgungsconsumer wie Tracefmt oder TraceView verwenden, bei dem es sich sowohl um einen Ablaufverfolgungscontroller (z. B. Tracelog) als auch um einen Ablaufverfolgungsconsumer handelt. Wenn Sie Tracefmt verwenden, müssen Sie den Parameter -rt in den Tracefmt-Befehl einschließen.

Flags und Ebenen

Die meisten Ablaufverfolgungsanbieter generieren keine Ablaufverfolgungsmeldungen, es sei denn, das Flag oder die Ebene ist auf einen bestimmten Wert festgelegt. Die Anbieter verwenden Flags oder Ebenen, um zu steuern, was nachverfolgt wird. Wenn die Ereignisablaufverfolgungsprotokolldatei leer ist, überprüfen Sie die Flags und Ebenen im Ablaufverfolgungsanbieter.

Führen Sie die folgenden Schritte aus, um sicherzustellen, dass Ablaufverfolgungsmeldungen immer generiert werden:

  1. Legen Sie den Flags-Parameter auf 0xFFFFFFFF fest, um alle Flageinstellungen zu aktivieren.

  2. Legen Sie den Levels-Parameter auf 255 fest, um alle Ebeneneinstellungen zu aktivieren.

Parameter "-eflag"

Tracelog verfügt über einen Parameter -eflag (erweiterte Flags), der entwickelt wurde, um zusätzliche Flags für die NT Kernel Logger-Ablaufverfolgungssitzung zu aktivieren, insbesondere die Flags, um die Ablaufverfolgung von DPC-, ISR- und Kontextwechselereignissen zu ermöglichen. Da der Befehl tracelog -start jetzt den Parameter -dpcisr enthält, ist die Verwendung des Parameters -eflag nicht mehr erforderlich und wird nicht empfohlen.

Veraltete Parameter

In früheren Versionen von Tracelog unterstützte der Befehl tracelog -start die Parameterkombination -rt b . Diese Kombination wurde durch den Parameter -buffering ersetzt und ist nicht mehr gültig.

Der Parameter -x wurde entfernt, da das Beenden aller Ablaufverfolgungssitzungen zu Systeminstabilität führen kann.

Der Parameter -disableex wurde entfernt. Verwenden Sie stattdessen -disable .

NT-Kernelprotokollierung

Um eine Ablaufverfolgungssitzung mit der NT-Kernelprotokollierung zu starten, lassen Sie den Sitzungsnamen im Befehl tracelog -start aus, und verwenden Sie nicht den Parameter -guid , um eine Anbieter-GUID-Datei anzugeben. "NT Kernel Logger" ist der Standardname der Sitzung.

Wenn der Sitzungsname ausgelassen wird oder "NT Kernel Logger" lautet, startet das System eine NT Kernel Logger-Ablaufverfolgungssitzung, auch wenn Sie einen -guid-Parameter verwenden, um eine andere GUID als SystemTraceControlGUID anzugeben, die Steuerelement-GUID für die NT Kernel Logger-Ablaufverfolgungssitzung. Wenn Sie eine andere GUID angeben, gibt das System einen Fehler ("Systemprotokollierer akzeptiert keine Anwendungs-GUIds") zurück, startet aber trotzdem eine NT Kernel Logger-Ablaufverfolgungssitzung.

Wenn Tracelog eine NT Kernel Logger-Ablaufverfolgungssitzung startet, werden standardmäßig Ablaufverfolgungen von Prozess-, Thread-, E/A- und TCP/IP-Ereignissen auf physischen Datenträgern aktiviert. Sie können jedoch die Parameter verwenden, um die Ablaufverfolgung dieser Ereignisse zu deaktivieren und die Ablaufverfolgung anderer Ereignisse zu aktivieren.

DPC/ISR-Ereignisse

Da Tracerpt eine Systemleistungsindikatoruhrzeit als Zeitstempel erwartet, verwenden Sie den Parameter Tracelog -UsePerfCounter , wenn Sie die Ablaufverfolgungssitzung starten.

Da DPC- und ISR-Ereignisse von einer speziellen Instrumentierung erfasst werden, werden sie nicht in der Zeile Aktiviert der Ablaufverfolgung der Tabelle angezeigt, die tracelog zur Bestätigung eines Befehls anzeigt.

Weitere Informationen finden Sie unter Beispiel 15: Messen der DPC/ISR-Zeit.