DTrace este un cadru de urmărire dinamic care permite unui administrator sau dezvoltator să obțină o privire în timp real a unui sistem, fie în modul utilizator, fie în modul kernel. DTrace are un limbaj de programare puternic și de nivel înalt în stil C, care vă permite să inserați în mod dinamic puncte de urmărire. Folosind aceste puncte de urmărire inserate dinamic, puteți filtra condițiile sau erorile, puteți scrie cod pentru a analiza modelele de blocare, puteți detecta blocajele etc.
Pe Windows, DTrace extinde Urmărirea evenimentelor pentru Windows (ETW), care este static și nu oferă posibilitatea de a insera programatic puncte de urmărire în timpul execuției.
Toate API-urile și funcționalitățile utilizate de dtrace.sys sunt apeluri documentate.
Microsoft a implementat un driver special pentru Windows 10 care permite îndeplinirea unui număr de roluri de monitorizare a sistemului. Driverul va fi inclus cu Windows 10 versiunea 1903. De asemenea, DTrace necesită în prezent ca Windows să fie pornit cu un depanator de kernel activat.
Codul sursă pentru instrumentul portat DTrace este disponibil pe GitHub. Vizitați pagina DTrace pe Windowssub proiectul OpenDTrace de pe GitHub pentru a-l vedea.
Cuprins ascunde Configurați DTrace în Windows 10 Folosind DTraceConfigurați DTrace în Windows 10
Condiții preliminare pentru utilizarea funcției
- Insider Windows 10construi 18342sau mai sus
- Disponibil doar pex64Windows și captează informații de urmărire numai pentru procesele pe 64 de biți Programul Windows Insider esteactivatșiconfiguratcu un cont Windows Insider valid
- Accesați Setări->Actualizare și securitate->Program Windows Insider pentru detalii
Instrucțiuni:
- Set de configurare BCD:
- bcdedit /set dtrace on
- Rețineți, trebuie să setați din nou opțiunea bcdedit, dacă faceți upgrade la o nouă versiune Insider
- Aceasta instalează componentele modului utilizator, driverele și pachetele de caracteristici suplimentare la cerere necesare pentru ca DTrace să fie funcțional.
- Opțional: actualizațiVariabila de mediu PATHa includeC:Program FilesDTrace
- setați PATH=%PATH%;'C:Program FilesDTrace'
- Înființatcalea simbolului
- Creați un director nou pentru stocarea locală a simbolurilor în cache. Exemplu: mkdir c:symbols
- A stabilit_NT_SYMBOL_PATH=srv*C:simboluri* http://msdl.microsoft.com/download/symbols
- DTrace descarcă automat simbolurile necesare de pe serverul de simboluri și memorează cache în calea locală.
Opțional:Configurați depanatorul Kernelconexiune la mașina țintă ( link MSDN). Aceasta estenumainecesar dacă doriți să urmăriți evenimentele Kernel folosind FBT sau alți furnizori. - Rețineți că va trebui să dezactivați Secureboot și Bitlocker pe C:, (dacă sunt activate), dacă doriți să configurați un depanator de kernel.
Folosind DTrace
- Deschideți un prompt de comandă ridicat.
- Executați una dintre următoarele comenzi:|_+_|
Comandadtrace -lvn syscall:::va lista toate sondele și parametrii acestora disponibili de la furnizorul de apeluri syscall.
Următoarele sunt câțiva dintre furnizorii disponibili pe Windows și ce instrumentează aceștia.
- syscall – NTOS system callsfbt (Function Boundary Tracing) – Introducerea funcției kernel și returnspid – Urmărirea procesului în modul utilizator. La fel ca FBT în modul kernel, dar care permite și instrumentarea funcției arbitrare offsets.etw (Event Tracing pentru Windows) – Permite definirea sondelor pentru ETW Acest furnizor ajută la valorificarea instrumentelor existente ale sistemului de operare în DTrace.
- Aceasta este o adăugare pe care am făcut-o DTrace pentru a-i permite să expună și să obțină toate informațiile pe care Windows le oferă deja S.T.W.
Mai multe exemple de scripturi aplicabile pentru scenariile Windows pot fi găsite în aceasta directorul de mostre.
Sursă: Microsoft