DTrace är nu tillgängligt på Windows
Nästa funktionsuppdatering för Windows 10 (19H1, April 2019 Update, version 1903) kommer att innehålla stöd för DTrace, det populära felsöknings- och diagnostikverktyget med öppen källkod. Den har ursprungligen byggts för Solaris och blev tillgänglig för Linux, FreeBSD, NetBSD och macOS. Microsoft har portat den till Windows.
DTrace är ett dynamiskt spårningsramverk som låter en administratör eller utvecklare få en realtidsinblick i ett system antingen i användar- eller kärnläge. DTrace har ett högnivå- och kraftfullt programmeringsspråk i C-stil som låter dig infoga spårpunkter dynamiskt. Genom att använda dessa dynamiskt infogade spårpunkter kan du filtrera på förhållanden eller fel, skriva kod för att analysera låsmönster, upptäcka blockerade låsningar, etc.
På Windows utökar DTrace Event Tracing för Windows (ETW) som är statisk och inte ger möjlighet att programmässigt infoga spårningspunkter under körning.
Alla API: er och funktionalitet som används av dtrace.sys är dokumenterade anrop.
Microsoft har implementerat en speciell drivrutin för Windows 10 som gör det möjligt att utföra ett antal systemövervakningsroller. Drivrutinen kommer att inkluderas med Windows 10 version 1903. Dessutom kräver DTrace för närvarande att Windows startas med en kärnfelsökning aktiverad.
Källkoden för det portade DTrace-verktyget är tillgänglig på GitHub. Besök sidan "DTrace på Windows” under OpenDTrace-projektet på GitHub för att se det.
Ställ in DTrace i Windows 10
Förutsättningar för att använda funktionen
- Windows 10 insider byggd 18342 eller högre
- Endast tillgänglig på x64 Windows och fångar spårningsinformation endast för 64-bitarsprocesser
-
Windows Insider-program är aktiverad och konfigurerad med ett giltigt Windows Insider-konto.
- Besök Inställningar->Uppdatering och säkerhet->Windows Insider-program för mer information
Instruktioner:
-
BCD-konfigurationsuppsättning:
- bcdedit /set dtrace på
- Observera att du måste ställa in alternativet bcdedit igen om du uppgraderar till en ny Insider-build
-
Ladda ner och installera DTrace-paketet från nedladdningscenter.
- Detta installerar användarlägeskomponenter, drivrutiner och ytterligare funktionspaket som krävs för att DTrace ska fungera.
- Valfritt: Uppdatera PATH miljövariabel att inkludera C:\Program Files\DTrace
- set PATH=%PATH%;"C:\Program Files\DTrace"
- Uppstart symbol sökväg
- Skapa en ny katalog för cachelagring av symboler lokalt. Exempel: mkdir c:\symbols
- Uppsättning _NT_SYMBOL_PATH=srv*C:\symbols*http://msdl.microsoft.com/download/symbols
- DTrace laddar automatiskt ner de nödvändiga symbolerna från symbolservern och cachar till den lokala sökvägen.
-
Frivillig:Ställ in kärnfelsökning anslutning till målmaskinen (MSDN-länk). Detta är endast krävs om du vill spåra Kernel-händelser med FBT eller andra leverantörer.
- Observera att du kommer att behöva inaktivera Secureboot och Bitlocker på C:, (om aktiverat), om du vill ställa in en kärnfelsökare.
- Starta om målmaskin
Använder DTrace
- Öppna en förhöjd kommandotolk.
- Kör ett av följande kommandon:
# Syscall-sammanfattning per program i 5 sekunder: dtrace -Fn "tick-5sec { exit (0);} syscallentry{ @num[pid, execname] = count();} " # Sammanfatta timer ställ in/avbryt program för 3 sekunder: dtrace -Fn "tick-3sec { exit (0);} syscall:: Nt*Timer*:entry { @[probefunc, execname, pid] = count();}" # Dump System Process kärnstruktur: (kräver symbol väg till vara inställd) dtrace -n "BEGIN{print(*(struct nt`_EPROCESS *) nt`PsInitialSystemProcess);exit (0);}" # Spåra sökvägar genom NTFS när du kör notepad.exe (kräver KD a
Kommandot dtrace -lvn syscall kommer att lista alla sonder och deras parametrar tillgängliga från syscall-leverantören.
Följande är några av de leverantörer som är tillgängliga på Windows och vad de instrumenterar.
- syscall – NTOS-systemanrop
- fbt (Function Boundary Tracing) – Inmatning och returer av kärnfunktion
- pid – Processspårning i användarläge. Som kernel-mode FBT, men också tillåter instrumentering av godtyckliga funktionsförskjutningar.
-
etw (Händelsespårning för Windows) – Tillåter att prober definieras för ETW. Denna leverantör hjälper till att dra nytta av befintlig instrumentering av operativsystem i DTrace.
- Detta är ett tillägg vi har gjort till DTrace för att tillåta det att exponera och få all information som Windows redan tillhandahåller ETW.
Fler exempelskript som är tillämpliga för Windows-scenarier finns i detta provkatalog.
Källa: Microsoft