Freigeben über


Syntax der Tracelog-Befehle

Tracelog 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 [Actions] [options].

[Aktionen]

-addautologger [LoggerName]
Konfiguriert die Registrierungseinträge für eine automatische Protokollierungssitzung. Eine Autologger-Sitzung 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 mithilfe der Option "-sessionguid " angeben. Der Befehl "tracelog -addautologger " akzeptiert die gleichen Optionen wie der Befehl "Tracelog -start ".

-capturestate [LoggerName]
Fordert alle Anbieter an, die loggerName zum Protokollieren von Statusinformationen aktiviert haben. Die aktivierten Schlüsselwörter bestimmen die Art der protokollierten Informationen.

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

Mit dem Befehl "tracelog -stop " werden die Ablaufverfolgungsanbieter vor dem Beenden der Sitzung deaktiviert. 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 das Deaktivieren wird verhindert, dass der Ablaufverfolgungsanbieter Ablaufverfolgungsmeldungen an die Ablaufverfolgungssitzungspuffer sendet, aber die Puffer nicht leeren oder die Ablaufverfolgungssitzung beenden. Verwenden Sie einen Befehl "tracelog -flush ", um die Puffer und einen Tracelog -stop - oder tracelog -x -x -Befehl (alle beenden) zu leeren, 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 Microsoft Windows SDK-Dokumentation.

-enable [LoggerName]
Aktiviert einen oder mehrere 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 beim Aktivieren nicht ausgeführt wird (oder nicht geladen wird), registriert das System den Anbieter vorab, d. h., er reserviert Speicherplatz für den Anbieter in der ETW-Registrierungsdatenbank und speichert den Aktivierungsbefehl. Wenn der Anbieter startet und sich tatsächlich registriert, empfängt er den gespeicherten Aktivierungsbefehl und beginnt mit dem Senden von Ablaufverfolgungsmeldungen an die Sitzung.

Der Befehl "tracelog -start " ermöglicht alle Anbieter, die durch den optionalen Parameter "-guid " im Tracelog -start-Befehl angegeben sind. Sie müssen keinen separaten Tracelog-Enable-Befehl übermitteln.

Sie können einen Tracelog -enable-Befehl verwenden, um einen Anbieter zu einer laufenden Ablaufverfolgungssitzung hinzuzufügen, die Flags und die Ebene für einen Anbieter während der Ablaufverfolgung zu ändern oder einen Anbieter, den Sie deaktiviert haben, mithilfe eines Tracelog -disable-Befehls erneut zu aktivieren.

Wenn Sie den Befehl "tracelog -enable " verwenden, senden Sie zuerst einen Tracelog -start-Befehl , um die Ablaufverfolgungssitzung zu starten, und übermitteln Sie dann den Tracelog -enable-Befehl , 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 Ablaufverfolgungskennzeichnungen und Ablaufverfolgungsebenen, 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 einen separaten Tracelog-Enable-Befehl für jeden Anbieter mit eigenen Flag- und Leveleinstellungen.

Wenn Sie eines der NT Kernel Logger-Flags (z. B. -noprocess, -nothread, -fio oder -cm) aktivieren, während eine globale Logger-Ablaufverfolgungssitzung ausgeführt wird, wird die globale Logger-Sitzung in eine NT Kernel Logger-Ablaufverfolgungssitzung konvertiert. Dieses Feature wurde entwickelt, um Kernelereignisse während des Startvorgangs zu verfolgen.

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

-enumguid
Listet Anbieter (oder Listen) 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 einen Tracelog -enumguid-Befehl zu implementieren. Weitere Informationen zu dieser Funktion finden Sie in der Microsoft Windows SDK-Dokumentation.

-enumguidex [#guid]
Listet Anbieter (oder Listen) 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 einen Tracelog -enumguidex-Befehl zu implementieren. Weitere Informationen zu dieser Funktion finden Sie in der Microsoft Windows SDK-Dokumentation.

-flush [LoggerName]
Löscht die aktiven Puffer der LoggerName-Ablaufverfolgungssitzung . Wenn LoggerName nicht angegeben ist, löscht Tracelog die Puffer der NT Kernel Logger-Ablaufverfolgungssitzung.

Diese erzwungene Spülung ist zusätzlich zu den Leerungen, die automatisch auftreten, wenn ein Ablaufverfolgungsmeldungspuffer voll ist und wenn die Ablaufverfolgungssitzung beendet wird, und zusätzlich zu den Spülungen, die vom Flush-Timer (-ft) aktiviert werden.

Wenn Sie die Puffer einer Ablaufverfolgungssitzung leeren, werden die Ereignisse in den Puffern sofort an das Ablaufverfolgungsprotokoll oder den Ablaufverfolgungsverbraucher ü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 Microsoft Windows SDK-Dokumentation.

Sie können den Befehl "tracelog -flush " mit der Option "-f Logfile " verwenden, um die Ablaufverfolgungsmeldungen zu leeren, die sich derzeit im Puffer befinden, in die angegebene Ablaufverfolgungsprotokolldatei (ETL). Dieser Parameter ist nur für gepufferte Ablaufverfolgungssitzungen (-buffering) gültig. Bei anderen 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 weitergeleitet.

-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 für jede Sitzung aktivierten Anbieter auf.

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

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

-remove GlobalLogger
Entfernt und initialisiert die Registrierungswerte für eine globale Logger-Ablaufverfolgungssitzung. Er legt den Wert des Starteintrags auf 0 fest (nicht starten) und löscht die anderen Registrierungseinträge. Der Befehl "tracelog -remove " funktioniert nur für globale Logger-Ablaufverfolgungssitzungen. 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 jedes Mal eine globale Loggersitzung gestartet, wenn Sie das System neu starten.

Wenn Sie keinen Befehl "tracelog -remove " verwenden, befinden sich die Optionen aus der vorherigen Sitzung noch 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 ausgewählt haben.

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

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

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.

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

Wenn Sie eine Boot-Time Global Logger-Sitzung starten, die Kernelereignisse verfolgt, müssen Sie den Befehl tracelog -stop "NT Kernel Logger" oder tracelog -stop GlobalLogger verwenden, um es zu beenden. Wenn Sie einen der Befehle verwenden, um eine Sitzungsablaufverfolgung für globale Logger-Ablaufverfolgungssitzungen zu beenden, stoppt Tracelog den Anbieter, setzt jedoch die Werte der Registrierungseinträge nicht zurück. Verwenden Sie tracelog -remove, um die Werte der globalen Logger-Registrierungseinträge zurückzusetzen.

-systemrundown [LoggerName]
Fordert den SystemTraceProvider an, Ausführungsereignisse zu protokollieren, die an 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.

-Zeitüberschreitung Wert
Gibt den Timeoutwert in Millisekunden (ms) an, der verwendet werden soll, wenn Anbieter mit dem Befehl "tracelog -enable " aktiviert werden. Der Standardtimeout ist 0.

Wenn der Timeoutwert 0 ist, ruft der Tracelog 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 die Aktivierung von Rückruf-Exits jedes Anbieters oder das Timeout abläuft.

Wenn mehrere Anbieter gleichzeitig aktiviert werden, wird das Timeout auf jeden einzelnen sequenziell angewendet.

-update [LoggerName]
Der Befehl "tracelog -update" ändert die Eigenschaften einer Ablaufverfolgungssitzung während der Ausführung.

In einem Tracelog -update-Befehl ist der Parameter -guid nur gültig, wenn eine private Ablaufverfolgungssitzung (-um) aktualisiert wird. Verwenden Sie zum Hinzufügen oder Entfernen von Anbietern aus einer Standardablaufverfolgungssitzung, während die Sitzung ausgeführt wird, die Befehle "tracelog -enable " und "tracelog" .

Wenn Sie eine Ablaufverfolgungsprotokollsitzung (-f) starten, können Sie auf eine Echtzeitsitzung (-rt) aktualisieren, nachrichten werden jedoch zusätzlich zum Ablaufverfolgungs-Consumer weiterhin an das Ablaufverfolgungsprotokoll gesendet. Sie können das Protokoll nicht durch Aktualisieren aus der Sitzung entfernen. Bevor Sie einer Ablaufverfolgungsprotokollsitzung jedoch 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 auf eine Ablaufverfolgungsprotokollsitzung (-f) aktualisieren, werden neue Ablaufverfolgungsmeldungen nicht mehr direkt an den Ablaufverfolgungsanwender gesendet. Sie werden nur an das Ablaufverfolgungsprotokoll gesendet. Wenn Sie einer Echtzeitablaufverfolgungssitzung ein Ablaufverfolgungsprotokoll hinzufügen möchten, verwenden Sie sowohl "-rt" als auch "-f" im Befehl "tracelog -update". Bevor Sie einer Ablaufverfolgungsprotokollsitzung echtzeitbasierte Nachrichtenübermittlung hinzufügen können, müssen Sie zuerst den Befehl "tracelog -flush " verwenden, um die Puffer zu leeren.

Sie können keine globale Logger-Ablaufverfolgungssitzung aktualisieren.

Bei einer privaten Ablaufverfolgungssitzung (Benutzermodus) können Sie nur den Namen der Protokolldatei (-f) und den Leerzeitgeberwert (-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 Microsoft Windows SDK-Dokumentation.

[Optionen]

-addtotriagedump

Hinweis

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

Gibt an, dass alle aktiven Puffer für die Sitzung zur Verfügung stehen, die einem Triage-Speicherabbild hinzugefügt werden können. Triage dumps are limited in size, and if the session's buffers cause the dump to exceed its maximum size, the buffers will be left out.

-anfügen
Fügt die Ablaufverfolgungsmeldungen an die vom Parameter -f angegebene Ereignisablaufverfolgungsprotokolldatei (.etl) an. Standardmäßig wird eine neue Datei erstellt.

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

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

-bt n
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 beibehalten. Sie werden nicht an einen Ablaufverfolgungsanwender gesendet oder in einem Ablaufverfolgungsprotokoll aufgezeichnet.

-Cir MaxFileSize
Gibt die Zirkelprotokollierung (am Ende der Datei, Aufzeichnen neuer Nachrichten über die ältesten Nachrichten) in der Ereignisablaufverfolgungsprotokolldatei (ETL) an. MaxFileSize gibt die maximale Größe der Datei in MB an. Ohne einen MaxFileSize-Wert wird dieser Parameter ignoriert.

Die Standardeinstellung ist die sequenzielle Protokollierung ohne Dateigrößenbeschränkung.

-Zentimeter
Aktiviert 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. Sie können einen kritischen Abschnittsprozess-Prozessprotokollierer für jeden Benutzermodus-Prozess 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 selben Befehl verwenden.

-dpcisr
Ermöglicht die Ablaufverfolgung von verzögerten Prozeduraufrufen (DPCs), Interrupt service requests (ISRs), Image load events (-img) und Kontextschaltern 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 von 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 zum Formatieren und Interpretieren von DPC/ISR-Ereignissen. Informationen zum Interpretieren und Formatieren dieser Ereignisse finden Sie unten unter "Kommentare".

-eflag n [Flag...]
Ermöglicht Kernelereignissen mit zusätzlichen Flags für NT Kernel Logger-Ablaufverfolgungssitzungen, insbesondere die Flags zum Aktivieren der Ablaufverfolgung von DPC-, ISR- und Kontextwechselereignissen. Die Option "-eflag " kann nicht mit der Option "-dpcisr " verwendet werden.

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

-EventIdFilter {-in-out|} **** n **** id1 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.

-ExeFilter Executable_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 durch Semikolons. Nicht aufgeführte Dateien sind 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.

-Flagge Flagge

Hinweis

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

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

Flag stellt einen Flagwert dar, der im Ablaufverfolgungsanbieter im Dezimal- oder Hexadezimalformat definiert ist. Der Standardwert ist 0. Werte aus 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.

-Ft FlushTime
Gibt an, wie oft die Ablaufverfolgungsmeldungspuffer in Sekunden geleert werden. Die minimale Spülzeit beträgt 1 Sekunde. Der Standardwert ist 0 (kein erzwungenes Leeren).

Diese erzwungene Löschung ist zusätzlich zu den Leerungen, die automatisch auftreten, wenn ein Ablaufverfolgungsmeldungspuffer voll ist und wenn eine Ablaufverfolgungssitzung beendet wird.

Weitere Informationen finden Sie im 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 folgendermaßen formatiert sein:

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

Wenn eine Anbieter-GUID angegeben ist, muss die GUID durch ein Nummernzeichen (#) vorangestellt werden.

Wenn ein Anbietername angegeben ist, muss der Name durch ein Sternchen (*) vorangestellt werden. Der Name wird dann mit demselben Algorithmus in eine GUID konvertiert wie . 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 einen Tracelog -enable-Befehl 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.

-Haufen
Verfolgt Heap-Speicherereignisse für einen Benutzermodusprozess. Sie können einen Heap-Prozessprotokollierer für jeden Benutzermodus-Prozess starten, auch wenn er 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 Heap-Speicherablaufverfolgungen. Sie können "-heap" und "-critsec" nicht im selben Befehl verwenden.

-Hf
Aktiviert die Ablaufverfolgung von Festplattenfehlern (Seitenfehler, für die Datenträgerzugriff erforderlich ist). Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

-hybridshutdown {stop|persist}
Steuert das Verhalten des Hybrid herunterfahrenden Loggers. Diese Option ist ab Windows 8 verfügbar.

stop führt dazu, 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 erneut über ein Hybrid heruntergefahren wurde.

-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 werden.

Aktiviert den unabhängigen Modus in der Ablaufverfolgungssitzung. Der unabhängige Modus ermöglicht es der Sitzung, Ereignisse zu sammeln, die andere nicht unabhängige Sitzungen verworfen haben. 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 weiter, je nachdem, was angefügt ist. Dieser Parameter legt außerdem die Größe des Ablaufverfolgungspuffers auf 3 KB, die maximale Puffergröße für den Debugger fest 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 Hilfe "-eflag" für eine Liste von Kernelereignissen.

-Niveau n
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 Levelwerts wird unabhängig von jedem Ablaufverfolgungsanbieter definiert. In der Regel stellt die Ablaufverfolgungsebene den Schweregrad des Ereignisses dar (Informationen, Warnungen oder Fehler).

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 nicht verwendet werden, es sei denn, dies ist erforderlich, um die Speicherkosten zu reduzieren. 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.

-Max NumberOfBuffers
Gibt die maximale Anzahl von Puffern an, die Tracelog für die Ablaufverfolgungssitzung zuweist. Der Standardwert wird durch die Anzahl der Prozessoren, die Menge des physischen Arbeitsspeichers und das verwendete Betriebssystem bestimmt.

-matchallkw n
Gibt die MatchAllKeyWord-Bitmaske an, die die Kategorie der Ereignisse einschränkt, die der Anbieter schreibt und in Verbindung mit der Option -matchanykw verwendet wird.

Diese Bitmaske ist optional. Wenn das Schlüsselwort 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 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.

-matchanykw n
Gibt die MatchAnyKeyword-Bitmaske an, die die Kategorie von Ereignissen bestimmt, die der Anbieter schreibt.

Der Anbieter schreibt das Ereignis, wenn eines der Schlüsselwortbits 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.

-Min NumberOfBuffers
Gibt die Anzahl der Puffer an, die anfänglich zum Speichern von Ablaufverfolgungsmeldungen zugewiesen wurden. Wenn die Puffer voll sind, weist Tracelog weitere Puffer zu, bis sie das Maximum erreicht. Der Standardwert wird durch die Anzahl der Prozessoren, die Menge des physischen Arbeitsspeichers und das verwendete Betriebssystem bestimmt.

-newfile MaxFileSize
Erstellt eine neue Ereignisablaufverfolgungsprotokolldatei (.etl), 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.

Bei Verwendung von -newfile müssen Sie auch den Parameter "-f LogFile " 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 nicht gültig mit Vorlastung (-prealloc), Zirkelprotokollierung (-cir), mit der NT Kernel Logger-Sitzung oder für private Ablaufverfolgungssitzungen.

-nodisk
Deaktiviert die Ablaufverfolgung physischer Datenträger-E/A-Ereignisse. 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 Start- und Endvorgangs. Dieser Parameter ist nur für eine NT Kernel Logger-Ablaufverfolgungssitzung gültig.

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

-seitennummeriert
Verwendet ausgelagerten Speicher für die Ablaufverfolgungsmeldungspuffer. Die Ereignisablaufverfolgung verwendet standardmäßig nicht ausgelagerten Arbeitsspeicher für Puffer.

Anbieter, die nicht auslagerungsfähigem Speicher erfordern, können keine Ereignisse in einer Sitzung protokollieren, die ausgelagerten Speicher verwendet.

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

#PIDs gibt die Anzahl der Prozess-IDs an, die mit diesem Parameter aufgelistet sind. PID stellt einen Prozessbezeichner dar. Sie können bis zu zehn PIDs mit diesem Parameter angeben.

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

-PidFilter n pid1 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.

-PkgIdFilter Vollständiger Paketname [ **;**Vollständiger Paketname...]
Gibt einen Paket-ID-Filter an. Sie können eine Liste der Paketdateien angeben. Trennen Sie die Namen der Dateien durch Semikolons.

-PkgAppIdFilter PRAID [**;**PRAID...]
Gibt einen paketrelativen App-ID-Filter (PRAID) an. Die PRAID ist der eindeutige Bezeichner der Anwendung innerhalb des Pakets. Sie können mehrere PRAID angeben. Trennen Sie die IDs durch Semikolons. Diese Option steht für UWP-Apps ab Windows 8.1 zur Verfügung.

-Pmc Ctr1,Ctr2,...:Name+Name+...
Konfiguriert das Sampling des Leistungsüberwachungsindikators (PERFORMANCE Monitor Counter, PMC) für die angegebenen Kernelereignisse. Diese Option ist ab Windows 8 verfügbar.

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

-prealloc
Reserviert Speicherplatz für die ETL-Datei vor dem Starten der Sitzung.

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

-ProfileSource src
Konfigurieren Sie die zu verwendende Profilerstellungsquelle. Verwenden Sie für eine Liste der Quellen die Befehlsablaufverfolgung -ProfileSource-Hilfe. 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 Echtzeitablaufverfolgungssitzung. (Eine Ablaufverfolgungsprotokollsitzung (-f) ist die Standardeinstellung.)

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

-sicher
Aktiviert die Ablaufverfolgung im abgesicherten Modus. Mit dieser Option wird der EVENT_TRACE_SECURE_MODE Protokollierungsmodus ausgewählt. Beschränkt, wer Ereignisse bei der Sitzung mit TRACELOG_LOG_EVENT Berechtigung protokollieren kann.

-sessionguid
Gibt den GUID-Registrierungswert der AutoLogger-Sitzung an.

-SetProfInt n **** src

Wichtig

Das Ändern des Profilerstellungsintervalls wird nicht empfohlen.

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.

-Seq MaxFileSize
Gibt die sequenzielle Protokollierung (am Ende der Datei, Beenden der Aufzeichnung von Ereignissen) an 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, Sie können diesen Parameter jedoch verwenden, um die maximale Dateigröße festzulegen oder -prealloc zu verwenden. Ohne diesen Parameter gibt es keine Dateigrößenbeschränkung.

-sourceguid SourceGuid
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 [Events]
Gibt Kernelereignisse zum Sammeln von Stapeln an. Verwenden Sie die Hilfe "-eflag" für eine Liste von Kernelereignissen. Dieser Parameter ist nur für die NT Kernel Logger- oder Systemprotokollierablaufverfolgungssitzungen 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
Logger kann SystemTraceProvider-Ereignisse empfangen. Siehe Konfigurieren und Starten einer SystemTraceProvider-Sitzung. Diese Option ist ab Windows 8 verfügbar.

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

-UseCPUCycle
Verwendet die Prozessorfrequenz (auch als "CPU-Ticks" bezeichnet), um die Zeit jeder Ablaufverfolgungsnachricht zu messen.

Dieser Timer bietet die größtmögliche Auflösung, ist jedoch so sensibel, dass er fehleranfällig ist, insbesondere auf stromverwalteten Systemen und Multiprozessorcomputern. Wenn Sie z. B. diesen Timer auf einem Computer angeben, der über einen Arm-Prozessor verfügt, kann dies zu Out-of-Order-Ereignissen führen. Stattdessen wird -UsePerfCounter für die hochauflösende Ablaufverfolgung empfohlen.

-UsePerfCounter ist der Standardzeitgeber für die Ereignisablaufverfolgung.

-UsePerfCounter
Zeichnet den Wert der hochauflösenden Leistungszähleruhr auf, anstatt die Systemzeit mit geringerer Auflösung bei jeder Ablaufverfolgungsmeldung.

Da die Leistungszähleruhr in ca. 100 Nanosekundeneinheiten zählt, stellt sie einen eindeutigen Zeitstempel für jedes Ereignis bereit.

-UsePerfCounter ist der Standardzeitgeber für die Ereignisablaufverfolgung.

-UseSystemTime
Zeichnet die Systemzeit anstelle der hochauflösenden Leistungszähleruhrzeit mit jeder Ablaufverfolgungsmeldung auf. Da der Systemzeitgeber eine Auflösung von 10 Millisekunden aufweist (verglichen mit 100 Nanosekunden für die Leistungszähleruhr), können mehrere Ereignisse dieselbe Systemzeit haben.

-UsePerfCounter ist der Standardzeitgeber für die Ereignisablaufverfolgung.

-? | Hilfe | -?
Zeigt Nutzungsinformationen an.

Kommentare

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

Syntaxfehler

Tracelog 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.

Systemlogger

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

Enumguid

Um festzustellen, ob ein Tracelog -start - oder tracelog -enable-Befehl erfolgreich war, verwenden Sie einen Tracelog -enumguid-Befehl , 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 Echtzeitablaufverfolgungssitzung als auch eine Ablaufverfolgungsprotokollsitzung sein. Wenn Sie die Parameter -rt (Echtzeit) und -f (Protokollsitzung) in denselben Befehl einschließen, sendet das System den Pufferinhalt sowohl an das Protokoll als auch an einen Ablaufverfolgungs-Consumer. Bevor Sie einer Ablaufverfolgungsprotokollsitzung jedoch die Nachrichtenübermittlung in Echtzeit hinzufügen können, müssen die Puffer mithilfe des Befehls "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. Wenn Sie einer Echtzeitsitzung eine Protokolldatei hinzufügen möchten, verwenden Sie sowohl "-rt" als auch "-f" im Befehl "tracelog -update".

Wenn Sie eine Protokollsitzung (-f) starten, können Sie eine Aktualisierung auf eine Echtzeitsitzung (-rt) ausführen, nachrichten werden jedoch zusätzlich zum Ablaufverfolgungs-Consumer weiterhin an das Protokoll gesendet. Sie können das Protokoll nicht durch Aktualisieren aus der Sitzung entfernen.

Um Ablaufverfolgungsmeldungen aus einer reinen Echtzeitsitzung anzuzeigen oder zu speichern, können Sie auch einen Ablaufverfolgungs-Consumer verwenden, z. B. Tracefmt, oder TraceView verwenden, der sowohl ein Ablaufverfolgungscontroller (wie Tracelog) als auch ein Ablaufverfolgungsanwender ist. Achten Sie bei der Verwendung von Tracefmt darauf, den Parameter "-rt " in den Befehl "Tracefmt" einzuschließen.

Flags und Ebenen

Die meisten Ablaufverfolgungsanbieter generieren keine Ablaufverfolgungsmeldungen, es sei denn, das Kennzeichen 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 Levelparameter auf 255 fest, um alle Leveleinstellungen zu aktivieren.

Der Parameter "-eflag"

Tracelog verfügt über einen Parameter "-eflag " (erweiterte Flags), der so konzipiert wurde, dass zusätzliche Flags für die NT Kernel Logger-Ablaufverfolgungssitzung aktiviert werden– insbesondere die Flags zum Aktivieren der Ablaufverfolgung von DPC-, ISR- und Kontextwechselereignissen. Da der Tracelog -start-Befehl 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 Tracelog -start-Befehl 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 Kernel Logger

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

Wenn der Sitzungsname nicht angegeben 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 zurück ("System Logger akzeptiert keine Anwendungs-GUIDs"), startet aber dennoch eine NT Kernel Logger-Ablaufverfolgungssitzung.

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

DPC/ISR-Ereignisse

Da Tracerpt eine Systemleistungszähleruhrzeit 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 "Aktivierte Ablaufverfolgung " der Tabelle angezeigt, die tracelog anzeigt, um einen Befehl zu bestätigen.

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