DTrace je teraz k dispozícii v systéme Windows
Ďalšia aktualizácia funkcií systému Windows 10 (19H1, aktualizácia z apríla 2019, verzia 1903) bude zahŕňať podporu pre DTrace, populárny open source nástroj na ladenie a diagnostiku. Pôvodne bol vytvorený pre Solaris a stal sa dostupným pre Linux, FreeBSD, NetBSD a macOS. Microsoft ho preniesol na Windows.
DTrace je dynamický rámec sledovania, ktorý umožňuje správcovi alebo vývojárovi nahliadnuť do systému v reálnom čase v režime používateľa alebo jadra. DTrace má vysokú úroveň a výkonný programovací jazyk v štýle C, ktorý vám umožňuje dynamicky vkladať body sledovania. Pomocou týchto dynamicky vložených bodov sledovania môžete filtrovať podmienky alebo chyby, písať kód na analýzu vzorov zámkov, zisťovať uviaznutia atď.
V systéme Windows DTrace rozširuje sledovanie udalostí pre Windows (ETW), ktoré je statické a neposkytuje možnosť programovo vkladať body sledovania za behu.
Všetky API a funkcie používané dtrace.sys sú zdokumentované volania.
Spoločnosť Microsoft implementovala špeciálny ovládač pre Windows 10, ktorý umožňuje vykonávať množstvo úloh monitorovania systému. Ovládač bude súčasťou systému Windows 10 verzie 1903. DTrace tiež v súčasnosti vyžaduje spustenie systému Windows s povoleným ladiacim programom jadra.
Zdrojový kód pre portovaný nástroj DTrace je dostupný na GitHub. Navštívte stránku “DTrace v systéme Windows” pod projektom OpenDTrace na GitHub, aby ste si to mohli pozrieť.
Nastavte DTrace v systéme Windows 10
Predpoklady na používanie funkcie
- Windows 10 insider stavba 18342 alebo vyššie
- Dostupné iba na x64 Windows a zachytáva informácie o sledovaní iba pre 64-bitové procesy
-
Program Windows Insider je povolené a nakonfigurovaný s platným účtom Windows Insider Account.
- Podrobnosti nájdete v časti Nastavenia->Aktualizácia a zabezpečenie-> Program Windows Insider
Inštrukcie:
-
Konfiguračná sada BCD:
- bcdedit /set dtrace on
- Upozorňujeme, že ak inovujete na novú zostavu Insider, musíte znova nastaviť možnosť bcdedit
-
Stiahnuť ▼ a nainštalujte balík DTrace z sťahovacie centrum.
- Týmto sa nainštalujú súčasti užívateľského režimu, ovládače a ďalšie balíky funkcií na vyžiadanie, ktoré sú potrebné na fungovanie DTrace.
- Voliteľné: Aktualizujte súbor premenná prostredia PATH zahrnúť C:\Program Files\DTrace
- nastaviť PATH=%PATH%;"C:\Program Files\DTrace"
- Nastaviť cesta symbolov
- Vytvorte nový adresár na lokálne ukladanie symbolov do vyrovnávacej pamäte. Príklad: mkdir c:\symbols
- Set _NT_SYMBOL_PATH=srv*C:\symboly*http://msdl.microsoft.com/download/symbols
- DTrace automaticky stiahne potrebné symboly zo servera symbolov a uloží ich do pamäte cache na lokálnu cestu.
-
Voliteľné:Nastavte ladiaci program jadra pripojenie k cieľovému stroju (Odkaz na MSDN). Toto je iba vyžaduje sa, ak chcete sledovať udalosti jadra pomocou FBT alebo iných poskytovateľov.
- Upozorňujeme, že ak chcete nastaviť ladiaci program jadra, budete musieť vypnúť Secureboot a Bitlocker na C: (ak je povolený).
- Reštartovať cieľový stroj
Pomocou DTrace
- Otvorte zvýšený príkazový riadok.
- Vykonajte jeden z nasledujúcich príkazov:
# Zhrnutie systémového volania programom na 5 sekúnd: dtrace -Fn "tick-5sec { exit (0);} syscallentry{ @num[pid, execname] = count();} " # Sumarizujte nastavenie časovača/zrušte program na 3 sekund: dtrace -Fn "tick-3sec { exit (0);} syscall:: Nt*Timer*:entry { @[probefunc, execname, pid] = count();}" # Vypísať štruktúru jadra procesu systému: (vyžaduje cesta k symbolu byť nastavený) dtrace -n "BEGIN{print(*(struct nt`_EPROCESS *) nt`PsInitialSystemProcess);exit (0);}" # Sledovanie ciest cez NTFS pri spustení notepad.exe (vyžaduje KD a
Príkaz dtrace -lvn syscall zobrazí zoznam všetkých sond a ich parametrov dostupných od poskytovateľa syscall.
Nasledujú niektorí poskytovatelia dostupní v systéme Windows a ich nástroje.
- syscall – systémové volania NTOS
- fbt (Function Boundary Tracing) – Vstup a návraty funkcie jadra
- pid – Sledovanie procesov v užívateľskom režime. Rovnako ako FBT v režime jadra, ale tiež umožňuje prístrojové vybavenie ľubovoľných funkčných posunov.
-
etw (Sledovanie udalostí pre Windows) – Umožňuje definovať sondy pre ETW Tento poskytovateľ pomáha využiť existujúce vybavenie operačného systému v DTrace.
- Toto je jeden doplnok, ktorý sme urobili pre DTrace, aby sme mu umožnili odhaliť a získať všetky informácie, ktoré už Windows poskytuje v ETW.
Viac vzorových skriptov použiteľných pre scenáre Windows nájdete v tomto adresár vzoriek.
Zdroj: Microsoft