DTrace è un framework di tracciamento dinamico che consente a un amministratore o uno sviluppatore di dare uno sguardo in tempo reale a un sistema in modalità utente o kernel. DTrace dispone di un linguaggio di programmazione potente e di alto livello in stile C che consente di inserire dinamicamente punti di traccia. Utilizzando questi punti di traccia inseriti dinamicamente, è possibile filtrare condizioni o errori, scrivere codice per analizzare modelli di blocco, rilevare deadlock, ecc.
Su Windows, DTrace estende Event Tracing for Windows (ETW) che è statico e non offre la possibilità di inserire punti di traccia a livello di codice in fase di runtime.
Tutte le API e le funzionalità utilizzate da dtrace.sys sono chiamate documentate.
Microsoft ha implementato un driver speciale per Windows 10 che consente di eseguire una serie di ruoli di monitoraggio del sistema. Il driver sarà incluso con Windows 10 versione 1903. Inoltre, DTrace attualmente richiede che Windows venga avviato con un debugger del kernel abilitato.
Il codice sorgente per lo strumento DTrace portato è disponibile su GitHub. Visita la pagina DTrace su Windowssotto il progetto OpenDTrace su GitHub per vederlo.
Contenuti nascondere Configura DTrace in Windows 10 Utilizzando DTraceConfigura DTrace in Windows 10
Prerequisiti per l'utilizzo della funzionalità
- Windows 10 insidercostruire 18342o più alto
- Disponibile solo sux64Windows e acquisisce informazioni di traccia solo per i processi a 64 bit Il programma Windows Insider èabilitatoEconfiguratocon un account Windows Insider valido
- Visita Impostazioni->Aggiornamento e sicurezza->Programma Windows Insider per i dettagli
Istruzioni:
- Set di configurazione BCD:
- bcdedit /imposta dtrace attivo
- Tieni presente che dovrai impostare nuovamente l'opzione bcdedit se esegui l'aggiornamento a una nuova build Insider
- Questo installa i componenti della modalità utente, i driver e i pacchetti di funzionalità aggiuntive su richiesta necessari affinché DTrace funzioni.
- Facoltativo: aggiornare il fileVariabile d'ambiente PATHincludereC:ProgrammiDTrace
- imposta PATH=%PATH%;'C:ProgrammiDTrace'
- Impostarepercorso dei simboli
- Crea una nuova directory per memorizzare nella cache i simboli localmente. Esempio: mkdir c:simboli
- Impostato_NT_SYMBOL_PATH=srv*C:simboli* http://msdl.microsoft.com/download/symbols
- DTrace scarica automaticamente i simboli necessari dal server dei simboli e li memorizza nella cache del percorso locale.
Opzionale:Imposta il debugger del kernelconnessione alla macchina di destinazione ( Collegamento MSDN). Questo èsoltantorichiesto se desideri tracciare gli eventi del kernel utilizzando FBT o altri provider. - Tieni presente che dovrai disabilitare Secureboot e Bitlocker su C: (se abilitato), se desideri impostare un debugger del kernel.
Utilizzando DTrace
- Aprire un prompt dei comandi con privilegi elevati.
- Eseguire uno dei seguenti comandi:|_+_|
Il comandodtrace -lvn chiamata di sistema:::elencherà tutte le sonde e i relativi parametri disponibili presso il provider syscall.
Di seguito sono riportati alcuni dei provider disponibili su Windows e il loro strumento.
- syscall – Chiamate di sistema NTOSfbt (Function Boundary Tracing) – Voce della funzione kernel e returnspid – Tracciamento del processo in modalità utente. Come FBT in modalità kernel, ma consente anche la strumentazione di funzioni arbitrarie offsets.etw (Event Tracing for Windows) – Consente di definire sonde per ETW Questo provider aiuta a sfruttare la strumentazione del sistema operativo esistente in DTrace.
- Questa è un'aggiunta che abbiamo fatto a DTrace per consentirgli di esporre e ottenere tutte le informazioni già fornite da Windows S.T.W.
In questo sono disponibili altri script di esempio applicabili agli scenari Windows directory dei campioni.
Fonte: Microsoft