DTrace je zdaj na voljo v sistemu Windows
Naslednja posodobitev funkcij sistema Windows 10 (19H1, posodobitev aprila 2019, različica 1903) bo vključevala podporo za DTrace, priljubljeno odprtokodno orodje za odpravljanje napak in diagnostiko. Prvotno je bil zgrajen za Solaris in je postal na voljo za Linux, FreeBSD, NetBSD in macOS. Microsoft ga je prenesel v Windows.
Oglas
DTrace je dinamično ogrodje za sledenje, ki skrbniku ali razvijalcu omogoča vpogled v sistem v realnem času v uporabniškem ali jedrnem načinu. DTrace ima visoko raven in zmogljiv programski jezik v slogu C, ki vam omogoča dinamično vstavljanje točk sledenja. S temi dinamično vstavljenimi točkami sledenja lahko filtrirate pogoje ali napake, pišete kodo za analizo vzorcev zaklepanja, odkrivate zastoje itd.
V sistemu Windows DTrace razširi sledenje dogodkov za Windows (ETW), ki je statično in ne omogoča programskega vstavljanja točk sledenja med izvajanjem.
Vsi API-ji in funkcionalnosti, ki jih uporablja dtrace.sys, so dokumentirani klici.
Microsoft je implementiral poseben gonilnik za Windows 10, ki omogoča izvajanje številnih vlog za spremljanje sistema. Gonilnik bo vključen v operacijski sistem Windows 10 različice 1903. Poleg tega DTrace trenutno zahteva, da se Windows zažene z omogočenim razhroščevalnikom jedra.
Izvorna koda za preneseno orodje DTrace je na voljo na GitHubu. Obiščite stran "DTrace v sistemu Windows” v okviru projekta OpenDTrace na GitHubu, da si ga ogledate.
Nastavite DTrace v sistemu Windows 10
Predpogoji za uporabo funkcije
- Windows 10 insajder gradnja 18342 ali višje
- Na voljo samo na x64 Windows in zajame informacije o sledenju samo za 64-bitne procese
-
Program Windows Insider je omogočeno in konfiguriran z veljavnim računom Windows Insider
- Za podrobnosti obiščite Settings->Update & Security->Windows Insider Program
Navodila:
-
BCD konfiguracijski nabor:
- bcdedit /nastavi dtrace
- Upoštevajte, da morate znova nastaviti možnost bcdedit, če nadgradite na novo različico Insider
-
Prenesi in namestite paket DTrace iz center za prenos.
- S tem se namestijo komponente uporabniškega načina, gonilniki in dodatni paketi funkcij na zahtevo, ki so potrebni za delovanje DTrace.
- Izbirno: posodobite Spremenljivka okolja PATH vključuje C: \ Program Files \ DTrace
- nastavite PATH=%PATH%;"C:\Program Files\DTrace"
- Nastaviti pot simbola
- Ustvarite nov imenik za lokalno predpomnjenje simbolov. Primer: mkdir c:\symbols
- Set _NT_SYMBOL_PATH=srv*C:\symbols*http://msdl.microsoft.com/download/symbols
- DTrace samodejno prenese potrebne simbole s strežnika simbolov in predpomni na lokalno pot.
-
Neobvezno:Nastavite razhroščevalnik jedra povezava s ciljnim strojem (Povezava MSDN). to je samo zahteva, če želite slediti dogodkim jedra z uporabo FBT ali drugih ponudnikov.
- Upoštevajte, da boste morali onemogočiti Secureboot in Bitlocker na C: (če je omogočeno), če želite nastaviti razhroščevalnik jedra.
- Ponovno zaženite ciljni stroj
Uporaba DTrace
- Odprite povišan ukazni poziv.
- Izvedite enega od naslednjih ukazov:
# Povzetek sistemskega klica po programu za 5 sekund: dtrace -Fn "tick-5sec { exit (0);} syscallentry{ @num[pid, execname] = count();} " # Povzemi program za nastavitev/preklic časovnika za 3 sekunde: dtrace -Fn "tick-3sec { exit (0);} syscall:: Nt*Timer*:entry { @[probefunc, execname, pid] = count();}" # Izpis struktura jedra sistemskega procesa: (zahteva pot simbola do biti nastavljen) dtrace -n "BEGIN{print(*(struct nt`_EPROCESS *) nt`PsInitialSystemProcess);exit (0);}" # Sledenje poti skozi NTFS pri izvajanju notepad.exe (zahteva KD a
Ukaz dtrace -lvn sistemski klic bo navedel vse sonde in njihove parametre, ki so na voljo pri ponudniku sistemskega klica.
Spodaj je nekaj ponudnikov, ki so na voljo v sistemu Windows, in kaj instrumenti uporabljajo.
- sistemski klic – Sistemski klici NTOS
- fbt (Trajanje mej funkcij) – Vnos in vrnitev funkcije jedra
- pid – Sledenje procesom v uporabniškem načinu. Tako kot FBT v načinu jedra, vendar omogoča tudi instrumentacijo poljubnih odmikov funkcij.
-
etw (Sledenje dogodkom za Windows) – Omogoča definiranje sond za ETW Ta ponudnik pomaga izkoristiti instrumentacijo obstoječega operacijskega sistema v DTrace.
- To je dodatek, ki smo ga naredili za DTrace, da mu omogočimo, da razkrije in pridobi vse informacije, ki jih Windows že ponuja ETW.
Več vzorčnih skriptov, ki veljajo za scenarije Windows, lahko najdete tukaj imenik vzorcev.
vir: Microsoft