Das nächste Windows 10-Feature-Update (19H1, April 2019 Update, Version 1903) wird DTrace, das beliebte Open Source-Debugging- und Diagnosetool, unterstützen. Es wurde ursprünglich für Solaris entwickelt und ist jetzt für Linux, FreeBSD, NetBSD und macOS verfügbar. Microsoft hat es auf Windows portiert.
Werbung
DTrace ist ein dynamisches Tracing-Framework, mit dem ein Administrator oder Entwickler in Echtzeit einen Einblick in ein System erhalten kann, entweder im Benutzer- oder im Kernelmodus. DTrace verfügt über eine High-Level-Programmiersprache im C-Stil, mit der Sie Trace-Punkte dynamisch einfügen können. Mithilfe dieser dynamisch eingefügten Ablaufverfolgungspunkte können Sie nach Bedingungen oder Fehlern filtern, Code schreiben, um Sperrmuster zu analysieren, Deadlocks zu erkennen usw.
So kopieren Sie Favoriten in Chrome
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.
Brauche ich ein neues Netzteil
Microsoft hat einen speziellen Treiber für Windows 10 implementiert, mit dem eine Reihe von Systemüberwachungsrollen ausgeführt werden können. Der Treiber wird in Windows 10, Version 1903, enthalten sein. Für DTrace muss Windows derzeit mit einem aktivierten Kernel-Debugger gestartet werden.
Der Quellcode für das portierte DTrace-Tool ist auf GitHub verfügbar. Besuchen Sie die Seite “ DTrace unter Windows ”Unter dem OpenDTrace-Projekt auf GitHub, um es zu sehen.
Richten Sie DTrace in Windows 10 ein
Voraussetzungen für die Nutzung der Funktion
- Windows 10 Insider bauen 18342 oder höher
- Nur verfügbar am x64 Windows und erfasst Ablaufverfolgungsinformationen nur für 64-Bit-Prozesse
- Windows Insider-Programm ist aktiviert und konfiguriert mit gültigem Windows Insider-Konto
- Weitere Informationen finden Sie unter Einstellungen-> Update & Sicherheit-> Windows Insider-Programm
Anleitung:
weiß Snapchat, ob du Bildschirmaufnahmen machst?
- BCD-Konfigurationssatz ::
- bcdedit / setze dtrace auf
- Beachten Sie, dass Sie die Option bcdedit erneut festlegen müssen, wenn Sie auf einen neuen Insider-Build aktualisieren
- Herunterladen und installieren Sie das DTrace-Paket von Download-Center .
- Dadurch werden die Komponenten, Treiber und zusätzlichen On-Demand-Pakete für den Benutzermodus installiert, die erforderlich sind, damit DTrace funktionsfähig ist.
- Optional: Aktualisieren Sie die Umgebungsvariable PATH einschließen C: Programme DTrace
- setze PATH =% PATH%; 'C: Programme DTrace'
- Konfiguration Symbolpfad
- Erstellen Sie ein neues Verzeichnis zum lokalen Zwischenspeichern von Symbolen. Beispiel: mkdir c: Symbole
- einstellen _NT_SYMBOL_PATH = srv * C: Symbole * http://msdl.microsoft.com/download/symbols
- DTrace lädt automatisch die erforderlichen Symbole vom Symbolserver herunter und speichert sie im lokalen Pfad.
- Optional: Richten Sie den Kernel-Debugger ein Verbindung zum Zielcomputer ( MSDN-Link ). Das ist nur Erforderlich, wenn Sie Kernel-Ereignisse mit FBT oder anderen Anbietern verfolgen möchten.
- Beachten Sie, dass Sie Secureboot und Bitlocker unter C: deaktivieren müssen (falls aktiviert), wenn Sie einen Kernel-Debugger einrichten möchten.
- Starten Sie neu Zielmaschine
Verwenden von DTrace
- Öffnen Sie eine erhöhte Eingabeaufforderung .
- Führen Sie einen der folgenden Befehle aus:
# Syscall-Zusammenfassung nach Programm für 5 Sekunden: dtrace -Fn 'tick-5sec {exit (0);} syscall ::: entry {@num [pid, execname] = count ();}' # Timer-Programm zusammenfassen / abbrechen für 3 Sekunden: dtrace -Fn 'tick-3sec {exit (0);} syscall :: Nt * Timer *: entry {@ [probefunc, execname, pid] = count ();}' # Kernelstruktur des Dump System Process: (erfordert das Setzen eines Symbolpfads) dtrace -n 'BEGIN {print (* (struct nt`_EPROCESS *) nt`PsInitialSystemProcess); exit (0);}' # Verfolgen von Pfaden durch NTFS beim Ausführen von notepad.exe (erfordert KD a
Der Befehl dtrace -lvn syscall ::: listet alle Sonden und ihre Parameter auf, die beim Syscall-Anbieter erhältlich sind.
Im Folgenden sind einige der unter Windows verfügbaren Anbieter und deren Instrumentierung aufgeführt.
- syscall - NTOS-Systemaufrufe
- fbt (Function Boundary Tracing) - Eingabe und Rückgabe der Kernelfunktion
- pid - Prozessverfolgung im Benutzermodus. Wie Kernel-Modus-FBT, ermöglicht aber auch die Instrumentierung beliebiger Funktionsversätze.
- etw (Ereignisverfolgung für Windows) - Ermöglicht die Definition von Tests für ETW. Dieser Anbieter hilft bei der Nutzung vorhandener Betriebssysteminstrumente in DTrace.
- Dies ist eine Erweiterung von DTrace, damit alle Informationen, die Windows bereits bereitstellt, verfügbar gemacht und abgerufen werden können ETW .
Weitere Beispielskripte für Windows-Szenarien finden Sie hier Beispielverzeichnis .
Quelle: Microsoft