Windows Tips & News

DTrace unter Windows erhält seine 20H1-Updates mit ARM64-Unterstützung

click fraud protection
EMPFOHLEN: Klicken Sie hier, um Windows-Probleme zu beheben und die Systemleistung zu optimieren

DTrace ist das beliebte Open-Source-Debugging- und Diagnosetool. Es wurde ursprünglich für Solaris entwickelt und wurde für Linux, FreeBSD, NetBSD und macOS verfügbar. Microsoft hat es auf Windows portiert und fügt mit dem 20H1-Funktionsupdate einen Teil der Updates hinzu.

Werbung

DTrace ist ein dynamisches Tracing-Framework, das es einem Administrator oder Entwickler ermöglicht, einen Echtzeit-Einblick 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 Ablaufverfolgungspunkte können Sie nach Bedingungen oder Fehlern filtern, Code zur Analyse von Sperrmustern schreiben, Deadlocks 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.

Dtrace unter Windows

Microsoft hat einen speziellen Treiber für Windows 10 implementiert, der die Ausführung einer Reihe von Systemüberwachungsrollen ermöglicht. Der Treiber ist in Windows 10 ab Version 1903 integriert.

Ab Windows 10 Insider Build 19041.21 bietet DTrace die folgenden Verbesserungen.

Inhaltverstecken
ARM64-Vorschau
Benutzermodus Stackwalk
Live-Dump-Unterstützung
ETW-Tracing

ARM64-Vorschau

Ja, das ist richtig! DTrace unterstützt jetzt ARM64 im Vorschaumodus. Das ARM64 MSI steht unter dem oben aufgeführten Download-Link zur Verfügung.

Sie können es auf Ihrem verwenden Surface Pro X Ausführen des neuesten Windows 10 Insider Preview (20H1)-Builds, beginnend mit 19041.21.

Dtrace auf dem ArmDTrace auf Surface Pro X

Benutzermodus Stackwalk

In der Vorschau war die Stackwalk-Funktion in DTrace auf den Kernel-Modus (Stack) beschränkt. Dieses Update fügt Unterstützung für die Benutzermodus-Stackwalk-Funktion hinzu (stack). Wie Stack ist die ustack-Funktion vollständig kompatibel mit der Open-Source-DTrace-Spezifikation. Es kann auf drei Arten aufgerufen werden, indem Frames (Tiefe) & Größe (vorerst ignoriert) oder void angegeben werden.

  • Ustack (nframes, Größe)
  • Ustack (nframes)
  • Ustack()

Während ustack() die Adresse des aufrufenden Frames ermitteln kann, wenn die Probe ausgelöst wird, werden die Stack-Frames nicht in Symbole übersetzt werden, bis die Aktion ustack() im Benutzermodus vom DTrace-Verbraucher verarbeitet wird. Das Herunterladen von Symbolen kann die Ausgabe verlangsamen. Daher ist es besser, diese Funktion mit lokal zwischengespeicherten Symbolen wie unten zu verwenden.

dtrace -n "profile-1ms /arg1/ {ustack (50, 0); exit (0);} " -y C:\symbols. dtrace: Beschreibung 'profile-1ms' stimmt mit 1 Probe überein. CPU ID FUNKTION: NAME 0 3802 :profile-1ms ntdll`ZwAllocateVirtualMemory+0x14 ntdll`RtlAllocateHeap+0x3ded ntdll`RtlAllocateHeap+0x763 ucrtbase`malloc_base+0x44

Live-Dump-Unterstützung

Windows verwendet normalerweise etwas namens Live-Dump um Probleme schnell zu diagnostizieren. Live-Dumps helfen bei der Behebung von Problemen mit mehreren Prozessen oder systemweiten Problemen ohne Ausfallzeiten. In 20H1 kann DTrace unter Windows verwendet werden, um einen Live-Dump aus einem D-Skript heraus zu erfassen lkd() DTrace-Einrichtung. Ein häufiger Anwendungsfall dieser Einrichtung besteht darin, einen Fehlerpfad zu instrumentieren (wie der Rückkehrcode einen Fehler anzeigt) und einen Live-Dump direkt am Fehlerpunkt für erweiterte Diagnosen zu erfassen. Weitere Informationen zur Live-Dump-Unterstützung finden Sie unter DTrace Live-Dump.

dtrace -wn "syscallreturn { if (arg0 != 0xc0000001UL) { lkd (0); printf(\" Live-Dump auslösen \n \");exit (0); }}" dtrace: Beschreibung 'syscallreturn' stimmte mit 1411 Sonden überein. dtrace: Erlaubt destruktive Aktionen. CPU-ID FUNKTION: NAME 0 181 NtDeviceIoControlFile: return Auslösendes Live-Dump-Verzeichnis c:\Windows\LiveKernelReports Volume in Laufwerk C hat keine Bezeichnung. Volume Seriennummer ist 70F4-B9F6 Verzeichnis von c:\Windows\LiveKernelReports 11.05.2019 17:20<DIR>. 11.05.2019 17:20 <DIR>.. 11.05.2019 17:19 <DIR> DTRACE. 11.05.2019 17:20 53.395.456 DTRACE-20191105-1720.dmp. 

ETW-Tracing

ETW-Tracing ist das am häufigsten verwendete Tool zum Debuggen unter Windows. In der Vorschau von DTrace auf Windows 19H1 haben wir die Unterstützung für die Instrumentierung von Tracelogging und manifestierten Ereignissen mithilfe der ETW-Anbieter.

In 20H1 haben wir diese Funktion weiter verbessert, um neue ETW-Ereignisse im Handumdrehen aus einem D-Skript heraus zu erstellen ETW_Trace() Einrichtung. Dies hilft in Situationen, in denen vorhandene ETW-Ereignisse nicht ausreichen und Sie zusätzliche ETW-Ablaufverfolgungspunkte hinzufügen möchten, ohne den Produktionscode zu ändern.

Für weitere Informationen über ETW_Trace Einrichtung und ETW-Anbieter, sehen DTrace ETW.

/* Ausführen des GitHub ETW-Provider-Beispiels (Link unten), um das Knotenspeicher-Info-Ereignis zu drucken. https://github.com/microsoft/DTrace-on-Windows/blob/master/samples/windows/etw/numamemstats.d. */ dtrace -qs numamemstats.d Partitions-ID: 0. Anzahl: 1. Knotennummer: 1. m_nodeinfo { uint64_t TotalPageCount = 0x1fb558 uint64_t SmallFreePageCount = 0x41 uint64_t SmallZeroPageCount = 0 uint64_t MediumFreePageCount = 0 uint64_t MediumZeroPageCount = 0 uint64_t LargeFreePageCount = 0 uint64_t LargeZeroPageCount = 0 uint64_t HugeFreePageCount = 0 uint64_t RiesigerZeroPageCount = 0. }

Wenn Sie daran interessiert sind, DTrace zu installieren, sehen Sie sich an, wie dies möglich ist Hier.

Sie können das aktualisierte DTrace MSI-Paket herunterladen von hier.

Hier ist es Quellcode und erweiterte Skripte.

Quelle

EMPFOHLEN: Klicken Sie hier, um Windows-Probleme zu beheben und die Systemleistung zu optimieren
Windows-Timeline im Insider-Webcast vorgeführt

Windows-Timeline im Insider-Webcast vorgeführt

EMPFOHLEN: Klicken Sie hier, um Windows-Probleme zu beheben und die Systemleistung zu optimierenW...

Weiterlesen

Microsoft enthüllt offiziell die Sets-Funktion von Windows 10

Microsoft enthüllt offiziell die Sets-Funktion von Windows 10

EMPFOHLEN: Klicken Sie hier, um Windows-Probleme zu beheben und die Systemleistung zu optimierenM...

Weiterlesen

Download User List Enabler für Windows 8

Diese Website verwendet Cookies, um Ihre Erfahrung beim Navigieren durch die Website zu verbesser...

Weiterlesen