DTrace es un marco de seguimiento dinámico que permite a un administrador o desarrollador obtener una visión en tiempo real de un sistema, ya sea en modo de usuario o de kernel. DTrace tiene un lenguaje de programación potente y de alto nivel estilo C que le permite insertar puntos de seguimiento dinámicamente. Al utilizar estos puntos de seguimiento insertados dinámicamente, puede filtrar por condiciones o errores, escribir código para analizar patrones de bloqueo, detectar puntos muertos, etc.
En Windows, DTrace extiende el seguimiento de eventos para Windows (ETW), que es estático y no proporciona la capacidad de insertar puntos de seguimiento mediante programación en tiempo de ejecución.
Todas las API y funciones utilizadas por dtrace.sys son llamadas documentadas.
Microsoft ha implementado un controlador especial para Windows 10 que permite realizar una serie de funciones de supervisión del sistema. El controlador se incluirá con Windows 10 versión 1903. Además, DTrace actualmente requiere que Windows se inicie con un depurador de kernel habilitado.
El código fuente de la herramienta DTrace portada está disponible en GitHub. visita la pagina DTrace en Windowsen el proyecto OpenDTrace en GitHub para verlo.
Contenido esconder Configurar DTrace en Windows 10 Usando DTraceConfigurar DTrace en Windows 10
Requisitos previos para utilizar la función
- Información privilegiada de Windows 10construir 18342o mas alto
- Sólo disponible enx64Windows y captura información de seguimiento solo para procesos de 64 bits El programa Windows Insider esactivadoyconfiguradocon una cuenta Windows Insider válida
- Visite Configuración->Actualización y seguridad->Programa Windows Insider para obtener más detalles
Instrucciones:
- Conjunto de configuración BCD:
- bcdedit /set dtrace activado
- Tenga en cuenta que debe configurar la opción bcdedit nuevamente si actualiza a una nueva versión de Insider.
- Esto instala los componentes del modo de usuario, los controladores y los paquetes de funciones adicionales bajo demanda necesarios para que DTrace sea funcional.
- Opcional: actualice elvariable de entorno RUTApara incluirC:Archivos de programaDTrace
- establecer RUTA=%PATH%;'C:Archivos de programaDTrace'
- Configuraciónruta del símbolo
- Cree un nuevo directorio para almacenar en caché los símbolos localmente. Ejemplo: mkdir c:symbols
- Colocar_NT_SYMBOL_PATH=srv*C:símbolos* http://msdl.microsoft.com/download/symbols
- DTrace descarga automáticamente los símbolos necesarios del servidor de símbolos y los almacena en caché en la ruta local.
Opcional:Configurar el depurador del kernelconexión a la máquina de destino ( enlace MSDN). Esto essolorequerido si desea rastrear eventos del Kernel usando FBT u otros proveedores. - Tenga en cuenta que deberá deshabilitar Secureboot y Bitlocker en C: (si está habilitado), si desea configurar un depurador del kernel.
Usando DTrace
- Abra un símbolo del sistema elevado.
- Ejecute uno de los siguientes comandos:|_+_|
El comandodtrace -lvn llamada al sistema:::enumerará todas las sondas y sus parámetros disponibles en el proveedor de syscall.
Los siguientes son algunos de los proveedores disponibles en Windows y sus instrumentos.
- syscall: llamadas del sistema NTOSfbt (rastreo de límites de funciones): entrada y retorno de funciones del kernelpid: seguimiento de procesos en modo de usuario. Como FBT en modo kernel, pero también permite la instrumentación de funciones arbitrarias offsets.etw (Event Tracing para Windows): permite definir sondas para ETW. Este proveedor ayuda a aprovechar la instrumentación del sistema operativo existente en DTrace.
- Esta es una adición que le hemos hecho a DTrace para permitirle exponer y obtener toda la información que Windows ya proporciona en STW.
Puede encontrar más scripts de muestra aplicables a escenarios de Windows en este directorio de muestras.
Fuente: microsoft