Condividi tramite


Sintassi del comando Tracelog

Tracelog include comandi (o azioni) che avviano, arresta e controllano una sessione di traccia.

Nota

Per controllare una sessione di traccia, è necessario essere un membro del gruppo Utenti log prestazioni o del gruppo Administrators nel computer (Esegui come amministratore).

    tracelog [actions] [options] | [-h | -help | -?] 

Parametri

Per informazioni sui parametri Tracelog, vedere [actions] [options].

[azioni]

-addautologger [LoggerName]
Configura le voci del Registro di sistema per una sessione di autologger. Una sessione di autologger è il metodo preferito per tracciare l'attività di un driver o di un altro provider di traccia durante l'avvio del sistema. È necessario specificare il GUID della sessione usando l'opzione -sessionguid . Il comando tracelog -addautologger accetta le stesse opzioni del comando Tracelog -start .

-capturestate [LoggerName]
Richiede a Tutti i provider abilitati a LoggerName di registrare le informazioni sullo stato. Le parole chiave abilitate consentono di determinare il tipo di informazioni registrate.

-disable [LoggerName]
Disabilita i provider di traccia specificati. Quando un provider è disabilitato, continua a essere eseguito, ma si arresta la generazione di messaggi di traccia.

Il comando tracelog -stop disabilita i provider di traccia prima di arrestare la sessione. Non è necessario disabilitare i provider prima di arrestare una sessione di traccia. È tuttavia possibile usare il comando tracelog -disable per disabilitare i provider selezionati senza arrestare una sessione di traccia.

La disabilitazione impedisce al provider di traccia di inviare messaggi di traccia ai buffer della sessione di traccia, ma non scarica i buffer o arresta la sessione di traccia. Usare un comando tracelog -flush per scaricare i buffer e un comando tracelog -stop o tracelog -x (stop all) per arrestare la sessione di traccia.

Tracelog usa la funzione EnableTrace per implementare un comando tracelog -disable . Per altre informazioni su questa funzione, vedere la documentazione di Microsoft Windows SDK.

-enable [LoggerName]
Abilita uno o più provider di traccia per la sessione di traccia LoggerName .

Quando si abilita un provider, il provider genera messaggi di traccia e li invia ai buffer di una sessione di traccia. Se il provider non è in esecuzione (o non viene caricato) quando lo si abilita, il sistema preregistra il provider, ovvero riserva spazio per il provider nel database di registrazione ETW e salva il comando abilita. Quando il provider avvia e registra effettivamente, riceve il comando di abilitazione salvato e inizia a inviare messaggi di traccia alla sessione.

Il comando tracelog -start abilita tutti i provider specificati dal parametro - guid facoltativo nel comando tracelog -start . Non è necessario inviare un comando tracelog separato -enable .

È possibile usare un comando tracelog -enable per aggiungere un provider a una sessione di traccia in esecuzione, per modificare i flag e il livello per un provider mentre è traccia o per riabilitare un provider disabilitato usando un comando tracelog -disable .

Quando si usa il comando tracelog -enable , inviare prima un comando tracelog -start per avviare la sessione di traccia e quindi inviare il comando tracelog -enable per abilitare i provider.

È possibile abilitare ripetutamente un provider in esecuzione senza disabilitarlo. Questa operazione può essere eseguita per modificare i flag e i livelli.

I flag di traccia e il livello di traccia specificati con i parametri -flag e -level vengono passati a tutti i provider di traccia rappresentati dal parametro -guid . Per specificare flag e livelli diversi per ogni provider di traccia, inviare un comando di tracelog separato per ogni provider, con le proprie impostazioni flag e livello.

Se si abilita uno dei flag NT Kernel Logger (ad esempio -noprocess, -nothread, -fio o -cm) mentre è in esecuzione una sessione di traccia di Logger globale, la sessione globale Logger viene convertita in una sessione di traccia nt Kernel Logger. Questa funzionalità è progettata per tracciare gli eventi del kernel durante il processo di avvio.

-enableex [LoggerName]
Identico a -enable. Questa opzione può essere rimossa nelle versioni future di Tracelog.

-enumguid
Enumera i provider (o elenchi) nel sistema registrato con Traccia eventi per Windows (ETW). Per una descrizione della visualizzazione Enumguid, vedere Visualizzazione di Tracelog Enumguid.

Tracelog usa la funzione EnumerateTraceGuids per implementare un comando tracelog -enumguid . Per altre informazioni su questa funzione, vedere la documentazione di Microsoft Windows SDK.

-enumguidex [#guid]
Enumera i provider (o elenchi) nel sistema registrato con Traccia eventi per Windows (ETW). Per una descrizione della visualizzazione EnumguidEx, vedere Visualizzazione Enumguid Tracelog.

Tracelog usa la funzione EnumerateTraceGuidsEx per implementare un comando tracelog -enumguidex . Per altre informazioni su questa funzione, vedere la documentazione di Microsoft Windows SDK.

-flush [LoggerName]
Scarica i buffer attivi della sessione di traccia LoggerName . Se LoggerName non è specificato, Tracelog scarica i buffer della sessione di traccia NT Kernel Logger.

Questo scaricamento forzato si aggiunge agli scaricamenti che si verificano automaticamente ogni volta che un buffer di messaggi di traccia è pieno e quando la sessione di traccia si arresta e oltre agli scaricamenti attivati dal timer di scaricamento (-ft).

Quando si scaricano i buffer di una sessione di traccia, gli eventi nei buffer vengono recapitati immediatamente al log di traccia o al consumer di traccia.

Lo scaricamento non disabilita il provider di traccia o reindirizza i messaggi di traccia. Dopo aver scaricato i buffer, il provider di traccia continua a scrivere eventi nei buffer.

Tracelog usa la funzione FlushTrace per implementare un comando tracelog -flush . Per altre informazioni su questa funzione, vedere la documentazione di Microsoft Windows SDK.

È possibile usare il comando tracelog -flush con l'opzione -fLogfile per scaricare i messaggi di traccia attualmente presenti nel buffer al file di log di traccia specificato (con estensione etl). Questo parametro è valido solo per le sessioni di traccia memorizzate nel buffer (buffering); per altri tipi di sessione di traccia, il parametro -f viene ignorato.

Questo download influisce solo sul contenuto corrente del buffer. Non reindirizza i messaggi di traccia futuri al log di traccia.

-l [-lp]
Elenca le proprietà di tutte le sessioni di traccia in esecuzione nel computer.

Se si passa l'opzione -lp , Tracelog elenca anche tutti i provider abilitati per ogni sessione.

-q [LoggerName] [-lp]
Elenca (query) le proprietà della sessione di traccia specificata. Se non si specifica LoggerName, Tracelog esegue query sulla sessione di traccia NT Kernel Logger.

Se si passa l'opzione -lp , Tracelog elenca anche tutti i provider abilitati alla sessione.

-remove GlobalLogger
Rimuove e reinizializza i valori del Registro di sistema per una sessione di traccia di Logger globale. Imposta il valore della voce Start su 0 (non avvia) ed elimina le altre voci del Registro di sistema. Il comando tracelog -remove funziona solo per le sessioni di traccia di Global Logger. Tutti gli altri valori di nome sessione non sono validi.

Il comando tracelog -remove non è obbligatorio. Tuttavia, se non si imposta il valore della voce Start su 0, viene avviata ogni volta che si riavvia il sistema una sessione di Logger globale.

Se non si usa un comando tracelog -remove , le opzioni della sessione precedente sono ancora presenti nel Registro di sistema e verranno usate per la nuova sessione, a meno che non si invii un comando tracelog -start con valori diversi per le stesse opzioni.

-start [LoggerName]
Avvia una sessione di traccia usando LoggerName selezionata per rappresentare la sessione di traccia.

Usare GlobalLogger come LoggerName per specificare una sessione di traccia di Logger globale. La sessione viene avviata al riavvio del computer.

LoggerName può essere qualsiasi nome che soddisfi le linee guida per la denominazione di Windows, fino a 1.024 caratteri. Se il nome include spazi, racchiudere il nome tra virgolette. Tracelog non è distinzione tra maiuscole e minuscole.

Il valore predefinito è "NT Kernel Logger". Se si omette questo parametro, Tracelog avvia una sessione di traccia NT Kernel Logger e dichiara un errore se si usa il parametro -guid per specificare un provider di traccia diverso.

-stop [LoggerName]
Disabilita i provider nella sessione di traccia specificata e quindi termina la sessione.

Il comando tracelog -stop disabilita entrambi i provider di traccia e arresta la sessione di traccia. Un comando tracelog -disable disabilita solo i provider di traccia.

Se si avvia una sessione di Boot-Time Global Logger che traccia gli eventi del kernel, è necessario usare il log di traccia del comando -stop "NT Kernel Logger" o tracelog -stopGlobalLogger per arrestarlo. Quando si usa uno dei comandi per arrestare una sessione di traccia di traccia di Logger globale , Tracelog arresta il provider, ma non reimposta i valori delle voci del Registro di sistema. Per reimpostare i valori delle voci del Registro di sistema Globale Logger, usare tracelog -remove.

-systemrundown [LoggerName]
Richiede a SystemTraceProvider di registrare gli eventi di rundown indirizzati alla sessione LoggerName . Vedere Configurazione e avvio di una sessione SystemTraceProvider per informazioni sull'avvio di una sessione di traccia.

Questo comando è disponibile solo in Windows 8 e versioni successive di Windows.

-timeoutvalore
Specifica il valore di timeout, in millisecondi (ms), da usare quando si abilitano i provider con il comando tracelog -enable . Il timeout predefinito è 0.

Se il valore di timeout è 0, il tracelog chiamerà il callback di ogni provider e restituirà immediatamente, senza attendere il completamento del callback.

Per abilitare i provider in modo sincrono, specificare un valore di timeout. Se si specifica un valore di timeout, Tracelog attenderà fino alla scadenza del callback di ogni provider o alla scadenza del timeout.

Quando si abilitano più provider contemporaneamente, il timeout viene applicato a ognuno in sequenza.

-update [LoggerName]
Il comando tracelog -update modifica le proprietà di una sessione di traccia durante l'esecuzione.

In un comando tracelog -update il parametro -guid è valido solo quando si aggiorna una sessione di traccia privata (-um). Per aggiungere o rimuovere provider da una sessione di traccia standard durante l'esecuzione della sessione, usare il tracelog -enable and tracelog -disable commands.

Se si avvia una sessione del log di traccia (-f), è possibile eseguire l'aggiornamento a una sessione in tempo reale (-rt), ma i messaggi continuano a essere inviati al log di traccia oltre al consumer di traccia. Non è possibile eliminare il log dalla sessione aggiornando. Tuttavia, prima di poter aggiungere il recapito dei messaggi in tempo reale a una sessione del log di traccia, è prima necessario usare il comando tracelog -flush per scaricare i buffer.

Se si avvia una sessione in tempo reale (-rt) e quindi si aggiorna a una sessione di log di traccia (-f), i nuovi messaggi di traccia non vengono più inviati direttamente al consumer di traccia; vengono inviati solo al log di traccia. Per aggiungere un log di traccia a una sessione di traccia in tempo reale, usare sia -rt che -f nel comando tracelog -update . Prima di poter aggiungere il recapito dei messaggi in tempo reale a una sessione del log di traccia, è prima necessario usare il comando tracelog -flush per scaricare i buffer.

Non è possibile aggiornare una sessione di traccia di Logger globale.

Per una sessione di traccia privata (modalità utente), è possibile aggiornare solo il nome del file di log (-f) e il valore timer di scaricamento (-ft).

Per aggiornare i flag e i livelli, usare il comando tracelog -enable per riabilitare il provider con nuovi flag o livelli.

Tracelog usa la funzione ControlTrace per implementare un comando tracelog -update . Per altre informazioni su questa funzione, vedere la documentazione di Microsoft Windows SDK.

[opzioni]

-addtotriagedump

Nota

Questa opzione non deve essere usata tranne quando potrebbe essere necessario visualizzare gli eventi da un dump del kernel usando il debugger.

Specifica che tutti i buffer attivi per la sessione sono disponibili per essere aggiunti a un dump di memoria di valutazione. I dump di valutazione sono limitati in dimensioni e, se i buffer della sessione causano il superamento delle dimensioni massime, i buffer verranno lasciati fuori.

-Aggiungere
Aggiunge i messaggi di traccia al file di traccia (con estensione etl) specificato dal parametro -f . Il valore predefinito consiste nel creare un nuovo file.

Questo parametro è valido solo nei comandi che includono -f e non includono -rt o -cir.

-bBufferSize
Specifica le dimensioni, in KB, di ogni buffer allocato per la sessione di traccia. Il valore predefinito è determinato dal numero di processori, dalla quantità di memoria fisica e dal sistema operativo in uso.

-btn
Specifica il numero (n) dei buffer da riempire prima di iniziare a scaricarli. Questa opzione è disponibile a partire da Windows 8.1.

-Buffer
Avvia una sessione di traccia memorizzata nel buffer.

In una sessione di traccia memorizzata nel buffer, i messaggi di traccia vengono conservati nei buffer di traccia. Non vengono inviati a un consumer di traccia o registrati in un log di traccia.

-cirMaxFileSize
Specifica la registrazione circolare (alla fine del file, registrare nuovi messaggi sui messaggi meno recenti) nel file di traccia eventi (con estensione etl). MaxFileSize specifica le dimensioni massime del file in MB. Senza un valore MaxFileSize , questo parametro viene ignorato.

Il valore predefinito è la registrazione sequenziale senza limiti di dimensioni file.

-Cm
Abilita la traccia dell'accesso al Registro di sistema (Configuration Manager). Questo parametro è valido solo per una sessione di traccia NT Kernel Logger.

-critsec
Traccia gli eventi critici della sezione per un processo in una sessione di traccia privata. È possibile avviare un logger di sezione critico in qualsiasi processo in modalità utente, anche uno che non è instrumentato per la traccia.

Usare -pids per specificare il processo. Non usare -guid con -critsec. Il sistema definisce un GUID personalizzato (CritSecGuid) per le tracce di sezione critiche. Non è possibile usare -heap e -critsec nello stesso comando.

-dpcisr
Abilita la traccia delle chiamate di routine posticipate (DPCS), le richieste di servizio di interruzione (ISR), gli eventi di caricamento delle immagini (-img) e i commutatori di contesto nel kernel. Questo parametro è valido solo per una sessione di traccia NT Kernel Logger.

Questa opzione è supportata solo nella versione di Tracelog inclusa in Windows Driver Kit per Windows Vista e versioni successive del WDK. L'opzione –dpcisr non può essere usata con l'opzione -eflag .

Usare il parametro -UsePerfCounter con -dpcisr. Questo parametro, che fornisce un timestamp univoco per ogni evento, è richiesto da Tracerpt, uno strumento usato per formattare e interpretare gli eventi DPC/ISR. Per informazioni sull'interpretazione e la formattazione di questi eventi, vedere "Commenti", di seguito.

-eflagn [flag...]
Consente agli eventi del kernel di usare flag aggiuntivi per le sessioni di traccia NT Kernel Logger, in particolare i flag per abilitare la traccia degli eventi di cambio di contesto, ISR e DPC. L'opzione -eflag non può essere usata con l'opzione -dpcisr .

-enablepropertyn
Vedere la descrizione di EnabledProperties nello struct EnableParameters passato come parametro a EnableTraceEx2 per le descrizioni e i valori supportati.

-EventIdFilter {-in-out|} ** n **** id1 id2 ...
Specifica un filtro id evento con n ID evento (massimo 64 ID evento consentiti). Questa opzione è disponibile a partire da Windows 8.1.

-ExeFilterExecutable_file [;Executable_file ...]
Specifica i nomi dei file eseguibili da filtrare. È possibile specificare un elenco di file. Separare i nomi dei file usando i punti e virgola. I file non elencati sono esclusi. Questa opzione è disponibile a partire da Windows 8.1.

-f [LogFile]
Avvia una sessione del log di traccia. LogFile specifica il percorso (facoltativo) e il nome file del file del log di traccia eventi (con estensione etl). Il valore predefinito è C:\LogFile.etl. Per inserire il file in un computer remoto, includere il nome del computer o l'indirizzo IP nel percorso.

Se si usa -rt con -f, i messaggi di traccia vengono inviati al consumer e a un file di log di traccia eventi. Non è possibile usare -rt o -f con -buffering.

-Fio
Abilita la traccia degli eventi di I/O dei file. Questo parametro è valido solo per una sessione di traccia NT Kernel Logger.

Flag -flag

Nota

I flag sono stati sostituiti dalle parole chiave. Usare -matchanykw a meno che non si abilita un provider WPP.

Specifica i flag di traccia per i provider nella sessione di traccia. Il valore del flag determina gli eventi generati dal provider di traccia.

Flag rappresenta un valore di flag definito nel provider di traccia, in formato decimale o esadecimale. Il valore predefinito è 0. I valori di 0x01000000 tramite 0xFF000000 sono riservati per l'uso futuro.

Il significato del valore del flag è definito in modo indipendente da ogni provider di traccia. In genere, i flag rappresentano livelli di report sempre più dettagliati.

Il valore del flag specificato in un comando tracelog -start si applica a tutti i provider di traccia nella sessione di traccia. Per impostare flag diversi per ogni provider di traccia, usare tracelog -enable.

-ftFlushTime
Specifica la frequenza con cui vengono scaricati i buffer dei messaggi di traccia in secondi. Il tempo minimo di scaricamento è 1 secondo. Il valore predefinito è 0 (nessuna scaricamento forzato).

Questo download forzato si aggiunge agli scaricamenti che si verificano automaticamente ogni volta che un buffer di messaggi di traccia è pieno e quando una sessione di traccia si arresta.

Vedere il comando tracelog -flush.

-guid {#GUID | file | *name}
Abilita i provider di traccia specificati.

Se viene specificato un file, Tracelog abilita la traccia per tutti i provider specificati nel file. Il file deve essere formattato come:

; comment line
guid1;matchanykeyword;level
guid2;matchanykeyword;level

Se viene specificato un GUID del provider, il GUID deve essere preceduto da un segno di numero (#).

Se viene specificato un nome del provider, il nome deve essere preceduto da un asterisco (*). Il nome verrà quindi convertito in un GUID usando lo stesso algoritmo di . Origine evento di NET. Questo GUID verrà quindi usato per abilitare il provider.

Se si omette questo parametro, nessun provider di traccia invierà messaggi alla sessione di traccia. Tuttavia, dopo aver avviato la sessione di traccia, è possibile usare un comando tracelog -enable per abilitare uno o più provider di traccia per la sessione.

-Gs
Genera un numero di sequenza globale per ogni messaggio di traccia.

I numeri di sequenza globali sono univoci per tutte le sessioni di traccia nel computer. Per impostazione predefinita, non sono presenti numeri di sequenza.

Questo parametro non è valido con la sessione di traccia NT Kernel Logger.

-Heap
Traccia gli eventi di memoria heap per un processo in modalità utente. È possibile avviare un logger di processo heap in qualsiasi processo in modalità utente, anche uno che non è instrumentato per la traccia.

Usare -pids per specificare il processo. Non usare -guid con -heap. Il sistema definisce un GUID personalizzato (HeapGuid) per le tracce di memoria heap. Non è possibile usare -heap e -critsec nello stesso comando.

-Hf
Abilita la traccia degli errori di pagina rigidi (errori di pagina che richiedono l'accesso al disco per risolvere). Questo parametro è valido solo per una sessione di traccia NT Kernel Logger.

-hybridshutdown {stop|persist}
Controlla il comportamento del logger di arresto ibrido. Questa opzione è disponibile a partire da Windows 8.

l'arresto causerà l'arresto della sessione quando il sistema esegue un arresto ibrido. persistenti causerà che la sessione continui dopo l'avvio del sistema da un arresto ibrido.

-Img
Abilita la traccia degli eventi di caricamento delle immagini. Questo parametro è valido solo per una sessione di traccia NT Kernel Logger.

-Indipendente

Nota

La modalità indipendente deve essere abilitata in ogni sessione di traccia.

Abilita la modalità indipendente nella sessione di traccia. La modalità indipendente consente alla sessione di raccogliere eventi che altre sessioni in modalità non indipendente sono state eliminate. Questa opzione è disponibile a partire da Windows 8.1.

-Kb
Usare kilobyte (KB) per le dimensioni del file di log. Il valore predefinito è megabyte (MB).

-Kd
Reindirizza i messaggi di traccia a KD o Windbg, che tuttavia è collegato. Questo parametro imposta anche le dimensioni del buffer di traccia su 3 KB, le dimensioni massime del buffer per il debugger e ignora i parametri -b nel comando.

Il debugger deve essere in esecuzione quando si invia un comando Tracelog con -kd. In caso contrario, Tracelog smette di rispondere.

Per informazioni sulla visualizzazione di messaggi di traccia in un debugger del kernel, vedere Commenti.

-Lbr *EventName[**+EventName+...]:Filter[,*Filter,...]
Configurare la traccia LBR sugli eventi del kernel.

Usare -eflag Help per un elenco di eventi del kernel.

-leveln
Specifica il livello di traccia per i provider nella sessione di traccia. Il livello determina gli eventi generati dal provider di traccia.

Il livello rappresenta un valore di livello in formato decimale o esadecimale. Il valore predefinito è 0.

Il significato del valore del livello è definito in modo indipendente da ogni provider di traccia. In genere, il livello di traccia rappresenta la gravità dell'evento (informazioni, avvisi o errori).

Il valore del livello specificato in un comando tracelog -start si applica a tutti i provider di traccia nella sessione di traccia. Per impostare livelli diversi per ogni provider di traccia, usare tracelog -enable.

-lowcapacity

Nota

Questa opzione non deve essere usata a meno che non sia necessario ridurre i costi di memoria. L'uso di questa opzione rende ogni evento più lento per registrare.

Usa un singolo buffer alla volta per raccogliere gli eventi generati in più processori. Questa opzione seleziona la modalità di registrazione EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING. Per altre informazioni, vedere Windows SDK.

-Ls
Genera un numero di sequenza locale per ogni messaggio di traccia.

I numeri di sequenza locali sono univoci all'interno di una sessione di traccia. Per impostazione predefinita, non sono presenti numeri di sequenza.

Questo parametro non è valido con la sessione di traccia NT Kernel Logger.

-maxNumberOfBuffers
Specifica il numero massimo di buffer allocati da Tracelog per la sessione di traccia. Il valore predefinito è determinato dal numero di processori, dalla quantità di memoria fisica e dal sistema operativo in uso.

-matchallkwn
Specifica la maschera di bit MatchAllKeyWord che limita la categoria di eventi scritti dal provider e viene utilizzata in combinazione con l'opzione -matchanykw .

Questa maschera di bit è facoltativa. Se la parola chiave dell'evento soddisfa la condizione specificata nell'opzione -matchanykw , il provider scriverà l'evento solo se tutti i bit in questa maschera esistono nella parola chiave dell'evento. Questa maschera non viene usata se -matchanykw è zero.

Tracelog passa il valore n nel parametro MatchAllKeyWord della chiamata di funzione EnableTraceEx2 . Per altre informazioni, vedere Windows SDK.

-matchanykwn
Specifica la maschera di bit MatchAnyKeyword che determina la categoria di eventi scritti dal provider.

Il provider scrive l'evento se uno dei bit della parola chiave dell'evento corrisponde a uno dei bit impostati in questa maschera. Tracelog passa il valore n nel parametro MatchAnyKeyWord della chiamata di funzione EnableTraceEx2 . Per altre informazioni, vedere Windows SDK.

-minNumberOfBuffers
Specifica il numero di buffer inizialmente allocati per l'archiviazione dei messaggi di traccia. Quando i buffer sono completi, Tracelog alloca più buffer finché non raggiunge il massimo. Il valore predefinito è determinato dal numero di processori, dalla quantità di memoria fisica e dal sistema operativo in uso.

-newfileMaxFileSize
Crea un nuovo file di log di traccia eventi (con estensione etl) ogni volta che il file esistente raggiunge MaxFileSize. MaxFileSize specifica le dimensioni massime di ogni file di log in MB. Senza un valore MaxFileSize , questo parametro viene ignorato.

Quando si usa -newfile, è necessario usare anche il parametro -fLogFile e il valore di LogFile deve essere un nome che include i caratteri %d per indicare un criterio decimale, ad esempio trace%d.etl. In caso contrario, il comando ha esito negativo con ERROR_INVALID_NAME. Windows incrementa il valore decimale nel nome del file ogni volta che crea un nuovo file.

Questo parametro non è valido con preallocation (prealloc), registrazione circolare (-cir), con la sessione NT Kernel Logger o per le sessioni di traccia privata.

-nodisk
Disabilita la traccia degli eventi di I/O del disco fisico. Questo parametro è valido solo per una sessione di traccia NT Kernel Logger.

-comunque
Disabilita la traccia degli eventi TCP/IP e User Datagram Protocol (UDP). Questo parametro è valido solo per una sessione di traccia NT Kernel Logger.

-noprocess
Disabilita la traccia dell'inizio e della fine di ogni processo. Questo parametro è valido solo per una sessione di traccia NT Kernel Logger.

-nothread
Disabilita la traccia dell'inizio e della fine di ogni thread. Questo parametro è valido solo per una sessione di traccia NT Kernel Logger.

-Paging
Usa la memoria paginabile per i buffer dei messaggi di traccia. Per impostazione predefinita, la traccia eventi usa memoria non modificabile per i buffer.

I provider che richiedono memoria non modificabile non saranno in grado di registrare gli eventi in una sessione che usa memoria paginabile.

-pids#PIDs PID [PID...]
Specifica i processi in modalità utente in cui viene eseguita una sessione di traccia della memoria heap o della sezione critica. Valido solo con -heap o -critsec.

#PIDs specifica il numero di ID di processo elencati con questo parametro. PID rappresenta un identificatore di processo. È possibile specificare fino a dieci ID PID con questo parametro.

Elencare più PID quando il provider viene eseguito in più processi, ad esempio quando un singolo programma crea più processi.

-PidFilter n pid1 pid2...
Specifica un filtro Pid con n Pids (massimo 8 consentito). Questa opzione è disponibile a partire da Windows 8.1.

-Pf
Abilita la traccia di tutti gli errori di pagina. Questo parametro è valido solo per una sessione di traccia NT Kernel Logger.

-PkgIdFilterPackage Full Name [ **;**Nome completo pacchetto...]
Specifica un filtro ID pacchetto. È possibile specificare un elenco di file di pacchetto. Separare i nomi dei file usando i punti e virgola.

-PkgAppIdFilterPRAID [**;**PRAID...]
Specifica un filtro PRAID (Package-Relative App Identifier). PraID è l'identificatore univoco dell'applicazione all'interno del pacchetto. È possibile specificare più di un PRAID. Separare gli ID usando i punti e virgola. Questa opzione è disponibile per le app UWP a partire da Windows 8.1.

-PmcCtr1,Ctr2,...:Name+Name+...
Configura il campionamento del contatore del monitoraggio delle prestazioni (PMC) sugli eventi del kernel specificati. Questa opzione è disponibile a partire da Windows 8.

Usare -ProfileSource Help per un elenco di contatori. Usare -eflag Help per un elenco di eventi del kernel.

-prealloc
Riserva spazio per il file con estensione etl prima di avviare la sessione.

Questo parametro richiede -seq o -cir con MaxFileSize. Non è valido con -newfile.

-ProfileSourcesrc
Configurare l'origine di profilatura da usare. Per l'elenco di origini, usare il comando tracelog -ProfileSource Help. Questa opzione è disponibile a partire da Windows 8.

Questa opzione è disponibile solo in Windows 8 e versioni successive di Windows.

-Rt
Avvia una sessione di traccia in tempo reale. (Una sessione del log di traccia (-f) è l'impostazione predefinita.

Se si usa -rt e -f, i messaggi di traccia vengono inviati al consumer di traccia e a un file di log di traccia eventi. Non è possibile usare -rt o -f con -buffering. Per altre informazioni, vedere Sessione di traccia.

-Sicuro
Abilita la traccia in modalità sicura. Questa opzione seleziona la modalità di registrazione EVENT_TRACE_SECURE_MODE. Limita chi può registrare gli eventi alla sessione a quelli con autorizzazione di TRACELOG_LOG_EVENT.

-sessionguid
Specifica il valore del Registro di sistema GUID sessione di sessione di autologger.

-SetProfIntn **** src

Importante

Non è consigliabile modificare l'intervallo di profilatura.

Configurare l'intervallo di profilatura (n) per l'origine specificata, dove n è in unità di 100ns. Il valore predefinito è 10000 (equivalente a 1ms). Questa opzione è disponibile a partire da Windows 8.

-seqMaxFileSize
Specifica la registrazione sequenziale (alla fine del file, arrestare gli eventi di registrazione) nel file del log di traccia eventi (con estensione etl). MaxFileSize specifica le dimensioni massime del file in MB. Senza un valore MaxFileSize , questo parametro viene ignorato.

La registrazione sequenziale è l'impostazione predefinita, ma è possibile usare questo parametro per impostare le dimensioni massime del file o per l'uso di -prealloc. Senza questo parametro, non esiste alcun limite di dimensioni file.

-sourceguidSourceGuid
Specifica il GUID passato come parametro SourceId alle funzioni EnableTraceEx o EnableTraceEx2. SourceId identifica la sessione abilitata per il provider.

-stackwalk [Eventi]
Specifica gli eventi del kernel in cui raccogliere gli stack. Usare -eflag Help per un elenco di eventi del kernel. Questo parametro è valido solo per le sessioni di traccia del logger del kernel NT o del logger di sistema.

-StackWalkFilter {-in-out|}nid1 id2 ...
Specifica un filtro ID evento con n ID evento (massimo 64 ID evento consentiti). Questa opzione è disponibile a partire da Windows 8.1.

-systemlogger
Logger può ricevere eventi SystemTraceProvider. Vedere Configurazione e avvio di una sessione SystemTraceProvider. Questa opzione è disponibile a partire da Windows 8.

-um
Specifica una sessione di traccia privata Questo parametro è necessario per una sessione di traccia privata.

-UseCPUCycle
Usa la frequenza del processore (denominata anche "tick CPU") per misurare il tempo di ogni messaggio di traccia.

Questo timer fornisce la risoluzione più elevata possibile, ma è così sensibile che è soggetto a errori, soprattutto nei sistemi gestiti dall'alimentazione e nei computer multiprocessore. Ad esempio, se si specifica questo timer nel computer con un processore Arm, potrebbe comportare eventi non ordinati. Al contrario, -UsePerfCounter è consigliato per la traccia ad alta risoluzione.

-UsePerfCounter è il timer predefinito per la traccia degli eventi.

-UsePerfCounter
Registra il valore dell'orologio del contatore delle prestazioni ad alta risoluzione, anziché il tempo di sistema a risoluzione inferiore, con ogni messaggio di traccia.

Poiché il contatore delle prestazioni conta circa 100-nanosecondi unità, fornisce un timestamp univoco per ogni evento.

-UsePerfCounter è il timer predefinito per la traccia degli eventi.

-UseSystemTime
Registra l'ora di sistema, anziché l'ora del contatore delle prestazioni ad alta risoluzione, con ogni messaggio di traccia. Poiché il timer di sistema ha una risoluzione di 10 millisecondi (rispetto a 100 nanosecondi per l'orologio del contatore delle prestazioni), più eventi possono avere lo stesso tempo di sistema.

-UsePerfCounter è il timer predefinito per la traccia degli eventi.

-? | help | -?
Visualizza le informazioni sull'utilizzo.

Commenti

I commenti seguenti si applicano a diversi comandi Tracelog.

Errori di sintassi

Tracelog non visualizza errori per tutte le combinazioni di sintassi non corrette, ad esempio quando si tenta di aggiornare un'impostazione che non può essere modificata. Ignora invece le parti non valide del comando e visualizza un messaggio di esito positivo.

Loggers di sistema

Windows usa sessioni di traccia per molti scopi, alcune delle quali sono critiche per un'operazione appropriata. Non arrestare alcuna sessione di traccia che non è stata avviata.

Enumguid

Per determinare se un comando tracelog -start o tracelog -enable ha avuto esito positivo, usare un comando tracelog -enumguid per determinare se i provider sono stati abilitati e quindi usare un comando tracelog -l (Elenco) per esaminare le proprietà della sessione di traccia.

Sessioni di log e in tempo reale

Una sessione di traccia può essere sia una sessione di traccia in tempo reale che una sessione del log di traccia. Se si includono i parametri -rt (in tempo reale) e -f (sessione di log) nello stesso comando, il sistema invia il contenuto del buffer sia al log che a un consumer di traccia. Tuttavia, prima di poter aggiungere il recapito dei messaggi in tempo reale a una sessione del log di traccia, è necessario scaricare i buffer usando il comando tracelog -flush .

Se si avvia una sessione in tempo reale (-rt) e quindi si aggiorna a una sessione di log (-f), tutti i nuovi messaggi di traccia vengono inviati solo al file di log. Per aggiungere un file di log a una sessione in tempo reale, usare sia -rt che -f nel comando tracelog -update .

Se si avvia una sessione di log (-f), è possibile eseguire l'aggiornamento a una sessione in tempo reale (-rt), ma i messaggi continuano a essere inviati al log oltre al consumer di traccia. Non è possibile eliminare il log dalla sessione aggiornando.

Per visualizzare o salvare i messaggi di traccia da una sessione solo in tempo reale, è anche possibile usare un consumer di traccia, ad esempio Tracefmt o usare TraceView, ovvero un controller di traccia (ad esempio Tracelog) e un consumer di traccia. Quando si usa Tracefmt, assicurarsi di includere il parametro -rt nel comando Tracefmt.

Flag e livelli

La maggior parte dei provider di traccia non genera messaggi di traccia a meno che il flag o il livello non sia impostato su un valore specifico. I provider usano flag o livelli per controllare ciò che viene tracciato. Se il file di log di traccia eventi è vuoto, esaminare i flag e i livelli nel provider di traccia.

Per assicurarsi che i messaggi di traccia vengano sempre generati, completare la procedura seguente:

  1. Impostare il parametro flag su 0xFFFFFFFF per abilitare tutte le impostazioni del flag.

  2. Impostare il parametro livelli su 255 per abilitare tutte le impostazioni di livello.

Parametro -eflag

Tracelog ha un parametro -eflag (flag estesi) progettato per abilitare flag aggiuntivi per la sessione di traccia NT Kernel Logger, in particolare, i flag per abilitare la traccia di eventi DPC, ISR e commutatore di contesto. Poiché il comando tracelog -start include ora il parametro -dpcisr , l'uso del parametro -eflag non è più necessario e non è consigliabile.

Parametri obsoleti

Nelle versioni precedenti di Tracelog il comando tracelog -start supportava la combinazione di parametri -rt b . Questa combinazione è stata sostituita dal parametro -buffering e non è più valida.

Il parametro -x è stato rimosso perché l'arresto di tutte le sessioni di traccia può causare l'instabilità del sistema.

Il parametro -disableex è stato rimosso. Usare invece -disable .

NT Kernel Logger

Per avviare una sessione di traccia con NT Kernel Logger, omettere il nome della sessione dal comando tracelog -start e non usare il parametro -guid per specificare un file GUID del provider. "NT Kernel Logger" è il nome di sessione predefinito.

Se il nome della sessione viene omesso o è "NT Kernel Logger", il sistema avvia una sessione di traccia NT Kernel Logger, anche se si usa un parametro -guid per specificare un GUID diverso da SystemTraceControlGUID, il GUID del controllo per la sessione di traccia NT Kernel Logger. Se si specifica un GUID diverso, il sistema restituisce un errore("System Logger non accetta guids dell'applicazione"), ma avvia comunque una sessione di traccia del kernel NT.

Per impostazione predefinita, quando Tracelog avvia una sessione di traccia NT Kernel Logger, consente tracce di processo, thread, I/O disco fisico e eventi TCP/IP, ma è possibile usare i parametri per disabilitare la traccia di questi eventi e abilitare la traccia di altri eventi.

Eventi DPC/ISR

Poiché Tracerpt prevede un time time del contatore delle prestazioni del sistema come timestamp, usare il parametro Tracelog -UsePerfCounter quando si avvia la sessione di traccia.

Poiché gli eventi DPC e ISR vengono raccolti dalla strumentazione speciale, non vengono visualizzati nella riga di traccia abilitata della tabella visualizzata da Tracelog per confermare un comando.

Per altre informazioni, vedere Esempio 15: Misurazione del tempo DPC/ISR.