DTrace is nu beschikbaar op Windows
De volgende functie-update van Windows 10 (19H1, april 2019 Update, versie 1903) zal ondersteuning bieden voor DTrace, de populaire open source debugging- en diagnosetool. Het is oorspronkelijk gebouwd voor Solaris en werd beschikbaar voor Linux, FreeBSD, NetBSD en macOS. Microsoft heeft het overgezet naar Windows.
DTrace is een dynamisch traceringsraamwerk waarmee een beheerder of ontwikkelaar een realtime kijkje in een systeem kan krijgen, in gebruikers- of kernelmodus. DTrace heeft een krachtige programmeertaal op hoog niveau in C-stijl waarmee u dynamisch traceerpunten kunt invoegen. Met behulp van deze dynamisch ingevoegde traceerpunten kunt u filteren op voorwaarden of fouten, code schrijven om vergrendelingspatronen te analyseren, deadlocks detecteren, enz.
Op Windows breidt DTrace Event Tracing for Windows (ETW) uit, dat statisch is en niet de mogelijkheid biedt om tijdens runtime programmatisch traceringspunten in te voegen.
Alle API's en functionaliteit die door dtrace.sys worden gebruikt, zijn gedocumenteerde aanroepen.
Microsoft heeft een speciaal stuurprogramma voor Windows 10 geïmplementeerd waarmee een aantal systeembewakingsrollen kan worden uitgevoerd. De driver wordt meegeleverd met Windows 10 versie 1903. Bovendien vereist DTrace momenteel dat Windows wordt gestart met een kerneldebugger ingeschakeld.
De broncode voor de geporteerde DTrace-tool is beschikbaar op GitHub. Bezoek de pagina “DTrace op Windows” onder het OpenDTrace-project op GitHub om het te zien.
DTrace instellen in Windows 10
Vereisten voor het gebruik van de functie
- Windows 10 insider bouw 18342 of hoger
- Alleen beschikbaar op x64 Windows en legt alleen traceerinformatie vast voor 64-bits processen
-
Windows Insider-programma is ingeschakeld en geconfigureerd met een geldig Windows Insider-account.
- Ga naar Instellingen->Update en beveiliging->Windows Insider-programma voor details
Instructies:
-
BCD-configuratieset:
- bcdedit /zet dtrace aan
- Let op, je moet de bcdedit-optie opnieuw instellen als je upgradet naar een nieuwe Insider-build
-
Downloaden en installeer het DTrace-pakket vanaf: download Centrum.
- Dit installeert de gebruikersmoduscomponenten, stuurprogramma's en aanvullende on-demand-pakketten die nodig zijn om DTrace functioneel te laten zijn.
- Optioneel: update de PATH omgevingsvariabele op te nemen C:\Program Files\DTrace
- set PATH=%PATH%;"C:\Program Files\DTrace"
- Opstelling symbool pad
- Maak een nieuwe map voor het lokaal cachen van symbolen. Voorbeeld: mkdir c:\symbols
- Set _NT_SYMBOL_PATH=srv*C:\symbolen*http://msdl.microsoft.com/download/symbols
- DTrace downloadt automatisch de benodigde symbolen van de symboolserver en caches naar het lokale pad.
-
Optioneel:Kernel-foutopsporing instellen verbinding met de doelcomputer (MSDN-link). Dit is enkel en alleen vereist als u Kernel-gebeurtenissen wilt traceren met FBT of andere providers.
- Merk op dat u Secureboot en Bitlocker op C:, (indien ingeschakeld) moet uitschakelen als u een kerneldebugger wilt instellen.
- Opnieuw opstarten doelmachine
DTrace gebruiken
- Open een verhoogde opdrachtprompt.
- Voer een van de volgende opdrachten uit:
# Syscall samenvatting per programma gedurende 5 seconden: dtrace -Fn "tick-5sec { exit (0);} syscallentry{ @num[pid, execname] = count();} " # Samenvatting timer instellen/annuleren programma voor 3 seconden: dtrace -Fn "tick-3sec { exit (0);} syscall:: Nt*Timer*:entry { @[probefunc, execname, pid] = count();}" # Dump System Process kernel-structuur: (vereist symbool pad naar ingesteld zijn) dtrace -n "BEGIN{print(*(struct nt`_EPROCESS *) nt`PsInitialSystemProcess);exit (0);}" # Traceren van paden door NTFS bij het uitvoeren van notepad.exe (vereist KD a
Het bevel dtrace -lvn syscall zal een lijst maken van alle sondes en hun parameters die beschikbaar zijn bij de syscall-provider.
Hieronder volgen enkele van de providers die beschikbaar zijn op Windows en wat ze instrumenteren.
- syscall – NTOS-systeemoproepen
- fbt (Function Boundary Tracing) - Kernelfunctie invoeren en retourneren
- pid – Tracing van processen in gebruikersmodus. Zoals kernel-mode FBT, maar ook de instrumentatie van willekeurige functie-offsets mogelijk maken.
-
etw (Event Tracing for Windows) – Hiermee kunnen sondes worden gedefinieerd voor ETW. Deze provider helpt om de bestaande instrumentatie van het besturingssysteem in DTrace te benutten.
- Dit is een toevoeging die we aan DTrace hebben gedaan om het mogelijk te maken om alle informatie die Windows al biedt, bloot te leggen en te verkrijgen ETW.
Meer voorbeeldscripts die van toepassing zijn op Windows-scenario's vindt u in deze voorbeelden directory.
Bron: Microsoft