DTrace és un marc de traça dinàmic que permet a un administrador o desenvolupador obtenir una mirada en temps real al sistema, ja sigui en mode d'usuari o de nucli. DTrace té un llenguatge de programació d'alt nivell d'estil C i potent que us permet inserir punts de traça de manera dinàmica. Amb aquests punts de traça inserits dinàmicament, podeu filtrar condicions o errors, escriure codi per analitzar patrons de bloqueig, detectar bloquejos, etc.
A Windows, DTrace amplia el seguiment d'esdeveniments per a Windows (ETW) que és estàtic i no ofereix la possibilitat d'inserir punts de traça amb programació en temps d'execució.
Totes les API i funcionalitats utilitzades per dtrace.sys són trucades documentades.
Microsoft ha implementat un controlador especial per a Windows 10 que permet realitzar una sèrie de funcions de monitorització del sistema. El controlador s'inclourà amb la versió 1903 de Windows 10. A més, actualment DTrace requereix que Windows s'iniciï amb un depurador del nucli habilitat.
El codi font de l'eina DTrace portada està disponible a GitHub. Visiteu la pàgina DTrace a Windowssota el projecte OpenDTrace a GitHub per veure-ho.
Continguts amagar Configura DTrace a Windows 10 Utilitzant DTraceConfigura DTrace a Windows 10
Requisits previs per utilitzar la funció
- Insider de Windows 10Construcció 18342o superior
- Només disponible ax64Windows i captura informació de traça només per a processos de 64 bits El programa Windows Insider éshabilitaticonfiguratamb un compte Windows Insider vàlid
- Visiteu Configuració->Actualització i seguretat->Programa Windows Insider per obtenir més informació
Instruccions:
- Conjunt de configuració de BCD:
- bcdedit /set dtrace on
- Tingueu en compte que heu de tornar a configurar l'opció bcdedit si actualitzeu a una nova compilació d'Insider
- Això instal·la els components del mode d'usuari, els controladors i els paquets de funcions addicionals a demanda necessaris perquè DTrace sigui funcional.
- Opcional: actualitzeu elVariable d'entorn PATHper incloureC:Fitxers de programaDTrace
- defineix PATH=%PATH%;'C:Arxius de programaDTrace'
- Configuraciócamí del símbol
- Creeu un directori nou per a la memòria cau localment dels símbols. Exemple: mkdir c:symbols
- Conjunt_NT_SYMBOL_PATH=srv*C:símbols* http://msdl.microsoft.com/download/symbols
- DTrace baixa automàticament els símbols necessaris del servidor de símbols i guarda a la memòria cau a la ruta local.
Opcional:Configura el depurador del nucliconnexió a la màquina de destinació ( Enllaç MSDN). Això ésnomésnecessari si voleu rastrejar els esdeveniments del nucli mitjançant FBT o altres proveïdors. - Tingueu en compte que haureu de desactivar Secureboot i Bitlocker a C:, (si està activat), si voleu configurar un depurador del nucli.
Utilitzant DTrace
- Obriu un indicador d'ordres elevat.
- Executeu una de les ordres següents:|_+_|
La comandadtrace -lvn syscall:::enumerarà totes les sondes i els seus paràmetres disponibles al proveïdor de syscall.
A continuació es mostren alguns dels proveïdors disponibles a Windows i el que instrumenten.
- syscall – NTOS system callsfbt (Function Boundary Tracing) – Entrada de la funció del nucli i returnspid – Seguiment del procés en mode d'usuari. Igual que FBT en mode nucli, però també permet la instrumentació de la funció arbitrària offsets.etw (Traçament d'esdeveniments per a Windows) - Permet definir sondes per a ETW Aquest proveïdor ajuda a aprofitar la instrumentació del sistema operatiu existent a DTrace.
- Aquesta és una addició que hem fet a DTrace per permetre-li exposar i obtenir tota la informació que Windows ja proporciona S.T.W.
Es poden trobar més scripts d'exemple aplicables als escenaris de Windows en això directori de mostres.
Font: Microsoft