DTrace er nu tilgængelig på Windows
Den næste funktionsopdatering til Windows 10 (19H1, april 2019-opdatering, version 1903) vil inkludere understøttelse af DTrace, det populære open source-fejlfindings- og diagnoseværktøj. Den er oprindeligt bygget til Solaris og blev tilgængelig til Linux, FreeBSD, NetBSD og macOS. Microsoft har overført det til Windows.
Reklame
DTrace er en dynamisk sporingsramme, der giver en administrator eller udvikler mulighed for at få et realtidskig ind i et system enten i bruger- eller kernetilstand. DTrace har et C-stil højt niveau og kraftfuldt programmeringssprog, der giver dig mulighed for dynamisk at indsætte sporingspunkter. Ved at bruge disse dynamisk indsatte sporingspunkter kan du filtrere på forhold eller fejl, skrive kode for at analysere låsemønstre, detektere blokeringer osv.
På Windows udvider DTrace Event Tracing for Windows (ETW), som er statisk og ikke giver mulighed for programmæssigt at indsætte sporingspunkter under kørsel.
Alle API'er og funktionalitet, der bruges af dtrace.sys, er dokumenterede kald.
Microsoft har implementeret en speciel driver til Windows 10, der gør det muligt at udføre en række systemovervågningsroller. Driveren vil blive inkluderet i Windows 10 version 1903. DTrace kræver også i øjeblikket, at Windows startes med en kerne-debugger aktiveret.
Kildekoden til det porterede DTrace-værktøj er tilgængelig på GitHub. Besøg siden "DTrace på Windows” under OpenDTrace-projektet på GitHub for at se det.
Konfigurer DTrace i Windows 10
Forudsætninger for at bruge funktionen
- Windows 10 insider bygget 18342 eller højere
- Kun tilgængelig på x64 Windows og fanger kun sporingsoplysninger for 64-bit processer
-
Windows Insider-program er aktiveret og konfigureret med en gyldig Windows Insider-konto
- Besøg Indstillinger->Opdatering og sikkerhed->Windows Insider-program for detaljer
Instruktioner:
-
BCD konfigurationssæt:
- bcdedit /sæt dtrace til
- Bemærk, du skal indstille bcdedit-indstillingen igen, hvis du opgraderer til en ny Insider-build
-
Hent og installer DTrace-pakken fra downloadcenter.
- Dette installerer brugertilstandskomponenter, drivere og yderligere funktions-on-demand-pakker, der er nødvendige for at DTrace kan fungere.
- Valgfrit: Opdater PATH miljøvariabel at medtage C:\Program Files\DTrace
- sæt PATH=%PATH%;"C:\Program Files\DTrace"
- Opsætning symbolsti
- Opret en ny mappe til caching af symboler lokalt. Eksempel: mkdir c:\symbols
- Sæt _NT_SYMBOL_PATH=srv*C:\symboler*http://msdl.microsoft.com/download/symbols
- DTrace downloader automatisk de nødvendige symboler fra symbolserveren og cacher til den lokale sti.
-
Valgfri:Konfigurer Kernel debugger forbindelse til målmaskinen (MSDN link). Dette er kun påkrævet, hvis du ønsker at spore kernehændelser ved hjælp af FBT eller andre udbydere.
- Bemærk, at du bliver nødt til at deaktivere Secureboot og Bitlocker på C:, (hvis aktiveret), hvis du ønsker at opsætte en kerne-debugger.
- Genstart målmaskine
Bruger DTrace
- Åbn en forhøjet kommandoprompt.
- Udfør en af følgende kommandoer:
# Syscall resumé efter program i 5 sekunder: dtrace -Fn "tick-5sec { exit (0);} syscallentry{ @num[pid, execname] = count();} " # Summarize timer set/cancel program for 3 sekunder: dtrace -Fn "tick-3sec { exit (0);} syscall:: Nt*Timer*:entry { @[probefunc, execname, pid] = count();}" # Dump System Process kernestruktur: (kræver symbol vej til være indstillet) dtrace -n "BEGIN{print(*(struct nt`_EPROCESS *) nt`PsInitialSystemProcess);exit (0);}" # Sporing af stier gennem NTFS, når du kører notepad.exe (kræver KD a
Kommandoen dtrace -lvn syscall vil liste alle sonderne og deres parametre tilgængelige fra syscall-udbyderen.
Følgende er nogle af de tilgængelige udbydere på Windows, og hvad de instrumenterer.
- syscall – NTOS-systemopkald
- fbt (Function Boundary Tracing) – Indtastning og returnering af kernefunktion
- pid – Processsporing i brugertilstand. Ligesom kernel-mode FBT, men også tillader instrumentering af vilkårlige funktionsforskydninger.
-
etw (Hændelsessporing til Windows) – Giver mulighed for at definere sonder til ETW. Denne udbyder hjælper med at udnytte eksisterende operativsysteminstrumentering i DTrace.
- Dette er en tilføjelse, vi har gjort til DTrace for at give den mulighed for at afsløre og få alle de oplysninger, som Windows allerede leverer i ETW.
Flere eksempler på scripts, der er relevante for Windows-scenarier, kan findes i dette prøvekatalog.
Kilde: Microsoft