DTrace ist ein dynamisches Tracing-Framework, das es einem Administrator oder Entwickler ermöglicht, einen Echtzeiteinblick in ein System entweder im Benutzer- oder Kernelmodus zu erhalten. DTrace verfügt über eine leistungsstarke Programmiersprache im C-Stil, mit der Sie Trace-Punkte dynamisch einfügen können. Mithilfe dieser dynamisch eingefügten Trace-Punkte können Sie nach Bedingungen oder Fehlern filtern, Code schreiben, um Sperrmuster zu analysieren, Deadlocks zu erkennen usw.
Unter Windows erweitert DTrace die Ereignisablaufverfolgung für Windows (ETW), die statisch ist und nicht die Möglichkeit bietet, Ablaufverfolgungspunkte zur Laufzeit programmgesteuert einzufügen.
Alle von dtrace.sys verwendeten APIs und Funktionen sind dokumentierte Aufrufe.
Microsoft hat einen speziellen Treiber für Windows 10 implementiert, der die Ausführung einer Reihe von Systemüberwachungsfunktionen ermöglicht. Der Treiber wird in Windows 10 Version 1903 enthalten sein. Außerdem erfordert DTrace derzeit, dass Windows mit aktiviertem Kernel-Debugger gestartet wird.
Der Quellcode für das portierte DTrace-Tool ist auf GitHub verfügbar. Besuchen Sie die Seite DTrace unter Windowsunter dem OpenDTrace-Projekt auf GitHub, um es zu sehen.
Inhalt verstecken Richten Sie DTrace unter Windows 10 ein Verwendung von DTraceRichten Sie DTrace unter Windows 10 ein
Voraussetzungen für die Nutzung der Funktion
- Windows 10-InsiderBaujahr 18342oder höher
- Nur verfügbar amx64Windows und erfasst Ablaufverfolgungsinformationen nur für 64-Bit-Prozesse Das Windows Insider-Programm istermöglichtUndkonfiguriertmit gültigem Windows Insider-Konto
- Weitere Informationen finden Sie unter Einstellungen -> Update und Sicherheit -> Windows Insider-Programm
Anweisungen:
- BCD-Konfigurationssatz:
- bcdedit /set dtrace on
- Beachten Sie, dass Sie die Option bcdedit erneut festlegen müssen, wenn Sie auf einen neuen Insider-Build aktualisieren
- Dadurch werden die Benutzermoduskomponenten, Treiber und zusätzlichen Feature-on-Demand-Pakete installiert, die für die Funktionalität von DTrace erforderlich sind.
- Optional: Aktualisieren Sie diePATH-UmgebungsvariableeinschließenC:ProgrammeDTrace
- set PATH=%PATH%;'C:ProgrammeDTrace'
- AufstellenSymbolpfad
- Erstellen Sie ein neues Verzeichnis zum lokalen Zwischenspeichern von Symbolen. Beispiel: mkdir c:symbols
- Satz_NT_SYMBOL_PATH=srv*C:symbols* http://msdl.microsoft.com/download/symbols
- DTrace lädt die erforderlichen Symbole automatisch vom Symbolserver herunter und speichert sie im lokalen Pfad zwischen.
Optional:Kernel-Debugger einrichtenVerbindung zum Zielrechner ( MSDN-Link). Das istnurerforderlich, wenn Sie Kernel-Ereignisse mithilfe von FBT oder anderen Anbietern verfolgen möchten. - Beachten Sie, dass Sie Secureboot und Bitlocker auf C: (falls aktiviert) deaktivieren müssen, wenn Sie einen Kernel-Debugger einrichten möchten.
Verwendung von DTrace
- Öffnen Sie eine Eingabeaufforderung mit erhöhten Rechten.
- Führen Sie einen der folgenden Befehle aus:|_+_|
Der Befehldtrace -lvn syscall:::listet alle Sonden und ihre Parameter auf, die vom Systemaufrufanbieter verfügbar sind.
Im Folgenden sind einige der unter Windows verfügbaren Anbieter und ihre Instrumente aufgeführt.
- syscall – NTOS-Systemaufrufefbt (Function Boundary Tracing) – Eingabe und Rückgabe von Kernel-Funktionenpid – Prozessverfolgung im Benutzermodus. Wie Kernel-Modus-FBT, ermöglicht aber auch die Instrumentierung beliebiger Funktionsoffsets.etw (Ereignisverfolgung für Windows) – Ermöglicht die Definition von Sonden für ETW. Dieser Anbieter hilft, die vorhandene Betriebssysteminstrumentierung in DTrace zu nutzen.
- Dies ist eine Ergänzung, die wir an DTrace vorgenommen haben, damit es alle Informationen verfügbar machen und abrufen kann, die Windows bereits bereitstellt ETW.
Weitere Beispielskripte für Windows-Szenarien finden Sie hier Beispielverzeichnis.
Quelle: Microsoft