Partilhar via


Sintaxe do comando Tracelog

O Tracelog tem comandos (ou ações) que iniciam, param e controlam uma sessão de rastreamento.

Observação

Para controlar uma sessão de rastreamento, você deve ser membro do grupo Usuários do Log de Desempenho ou do grupo Administradores no computador (Executar como administrador).

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

Parâmetros

Para obter informações sobre os parâmetros do Tracelog, consulte [actions] [options].

[ações]

-addautologger [LoggerName]
Configura as entradas do Registro para uma sessão de autologger. Uma sessão de autologger é o método preferencial para rastrear a atividade de um driver ou outro provedor de rastreamento durante a inicialização do sistema. Você deve especificar o GUID da sessão usando a opção -sessionguid . O comando tracelog -addautologger usa as mesmas opções que o comando Tracelog -start .

-capturestate [LoggerName]
Solicita que todos os provedores habilitados para LoggerName registrem informações de estado. As palavras-chave habilitadas ajudam a determinar o tipo de informação registrada.

-disable [LoggerName]
Desabilita os provedores de rastreamento especificados. Quando um provedor está desabilitado, ele continua a ser executado, mas para de gerar mensagens de rastreamento.

O comando tracelog -stop desabilita os provedores de rastreamento antes de interromper a sessão. Você não precisa desabilitar provedores antes de interromper uma sessão de rastreamento. No entanto, você pode usar o comando tracelog -disable para desabilitar provedores selecionados sem interromper uma sessão de rastreamento.

Desabilitar impede que o provedor de rastreamento envie mensagens de rastreamento para os buffers de sessão de rastreamento, mas não libera os buffers nem interrompe a sessão de rastreamento. Use um comando tracelog -flush para liberar os buffers e um comando tracelog -stop ou tracelog -x (stop all) para interromper a sessão de rastreamento.

O Tracelog usa a função EnableTrace para implementar um comando tracelog -disable . Para obter mais informações sobre essa função, consulte a documentação do SDK do Microsoft Windows.

-enable [LoggerName]
Habilita um ou mais provedores de rastreamento para a sessão de rastreamento LoggerName .

Quando você habilita um provedor, o provedor gera mensagens de rastreamento e as envia para os buffers de uma sessão de rastreamento. Se o provedor não estiver em execução (ou não for carregado) quando você habilitá-lo, o sistema registrará previamente o provedor, ou seja, reservará espaço para o provedor no banco de dados de registro ETW e salvará o comando enable. Quando o provedor é iniciado e realmente se registra, ele recebe o comando enable salvo e começa a enviar mensagens de rastreamento para a sessão.

O comando tracelog -start habilita todos os provedores especificados pelo parâmetro opcional -guid no comando tracelog -start . Você não precisa enviar um comando tracelog -enable separado.

Você pode usar um comando tracelog -enable para adicionar um provedor a uma sessão de rastreamento em execução, alterar os sinalizadores e o nível de um provedor enquanto ele estiver rastreando ou reabilitar um provedor que você desabilitou usando um comando tracelog -disable .

Ao usar o comando tracelog -enable , primeiro envie um comando tracelog -start para iniciar a sessão de rastreamento e envie o comando tracelog -enable para habilitar os provedores.

Você pode habilitar um provedor em execução repetidamente sem desabilitá-lo. (Você pode fazer isso para alterar os sinalizadores e níveis.)

Os sinalizadores de rastreamento e o nível de rastreamento especificados com os parâmetros -flag e -level são passados para todos os provedores de rastreamento representados pelo parâmetro -guid . Para especificar diferentes sinalizadores e níveis para cada provedor de rastreamento, envie um comando tracelog -enable separado para cada provedor, com seu próprio sinalizador e configurações de nível.

Se você habilitar qualquer um dos sinalizadores do Agente de Kernel do NT (como -noprocess, -nothread, -fio ou -cm) enquanto uma sessão de rastreamento do Agente Global estiver em execução, a sessão do Agente Global será convertida em uma sessão de rastreamento do Agente de Kernel NT. Esse recurso foi projetado para rastrear eventos de kernel durante o processo de inicialização.

-enableex [LoggerName]
Idêntico a -enable. Essa opção pode ser removida em versões futuras do Tracelog.

-enumguid
Enumera (ou lista) provedores no sistema registrados no ETW (Rastreamento de Eventos para Windows). Para obter uma descrição da exibição Enumguid, consulte Tracelog Enumguid Display.

O Tracelog usa a função EnumerateTraceGuids para implementar um comando tracelog -enumguid . Para obter mais informações sobre essa função, consulte a documentação do SDK do Microsoft Windows.

-enumguidex [#guid]
Enumera (ou lista) provedores no sistema registrados no ETW (Rastreamento de Eventos para Windows). Para obter uma descrição da exibição EnumguidEx, consulte Tracelog Enumguid Display.

Tracelog usa a função EnumerateTraceGuidsEx para implementar um comando tracelog -enumguidex . Para obter mais informações sobre essa função, consulte a documentação do SDK do Microsoft Windows.

-flush [LoggerName]
Libera os buffers ativos da sessão de rastreamento LoggerName . Se LoggerName não for especificado, Tracelog liberará os buffers da sessão de rastreamento do Agente de Kernel NT.

Essa liberação forçada é adicional às liberações que ocorrem automaticamente sempre que um buffer de mensagem de rastreamento está cheio e quando a sessão de rastreamento é interrompida, além das liberações ativadas pelo temporizador de liberação (-ft).

Quando você libera os buffers de uma sessão de rastreamento, os eventos nos buffers são entregues ao log de rastreamento ou ao consumidor de rastreamento imediatamente.

A liberação não desabilita o provedor de rastreamento nem redireciona as mensagens de rastreamento. Depois que os buffers são liberados, o provedor de rastreamento continua gravando eventos nos buffers.

O Tracelog usa a função FlushTrace para implementar um comando tracelog -flush . Para obter mais informações sobre essa função, consulte a documentação do SDK do Microsoft Windows.

Você pode usar o comando tracelog -flush com a opção -fLogfile para liberar as mensagens de rastreamento que estão atualmente no buffer para o arquivo de log de rastreamento (.etl) especificado. Esse parâmetro é válido apenas para sessões de rastreamento em buffer (-buffer); para outros tipos de sessão de rastreamento, o parâmetro -f é ignorado.

Essa liberação afeta apenas o conteúdo atual do buffer. Ele não redireciona mensagens de rastreamento futuras para o log de rastreamento.

-l [-lp]
Lista as propriedades de todas as sessões de rastreamento em execução no computador.

Se você passar a opção -lp , o Tracelog também listará todos os provedores habilitados para cada sessão.

-q [LoggerName] [-lp]
Lista (consultas) as propriedades da sessão de rastreamento especificada. Se você não especificar LoggerName, o Tracelog consultará a sessão de rastreamento do Agente de Kernel do NT.

Se você passar a opção -lp , o Tracelog também listará todos os provedores habilitados para a sessão.

-remove GlobalLogger
Remove e reinicializa os valores do Registro para uma sessão de rastreamento do Agente Global. Ele define o valor da entrada Iniciar como 0 (não iniciar) e exclui as outras entradas do Registro. O comando tracelog -remove funciona apenas para sessões de rastreamento do Agente Global. Todos os outros valores de nome de sessão são inválidos.

O comando tracelog -remove não é necessário. No entanto, se você não definir o valor da entrada Iniciar como 0, uma sessão do Agente Global será iniciada sempre que você reinicializar o sistema.

Se você não usar um comando tracelog -remove , as opções da sessão anterior ainda estarão no registro e serão usadas para a nova sessão, a menos que você envie um comando tracelog -start com valores diferentes para as mesmas opções.

-start [LoggerName]
Inicia uma sessão de rastreamento usando o LoggerName que você seleciona para representar a sessão de rastreamento.

Use GlobalLogger como o LoggerName para especificar uma sessão de rastreamento de agente global. A sessão é iniciada quando você reinicia o computador.

LoggerName pode ser qualquer nome que atenda às diretrizes de nomenclatura do Windows, até 1.024 caracteres. Se o nome incluir espaços, coloque o nome entre aspas. O Tracelog não diferencia maiúsculas de minúsculas.

O padrão é "NT Kernel Logger". Se você omitir esse parâmetro, o Tracelog iniciará uma sessão de rastreamento do Agente de Kernel NT e declarará um erro se você usar o parâmetro -guid para especificar um provedor de rastreamento diferente.

-stop [LoggerName]
Desabilita os provedores na sessão de rastreamento especificada e encerra a sessão.

O comando tracelog -stop desabilita os provedores de rastreamento e interrompe a sessão de rastreamento. Um comando tracelog -disable desabilita apenas os provedores de rastreamento.

Se você iniciar uma sessão do Agente Global de Tempo de Inicialização que rastreia eventos de kernel, será necessário usar o tracelog de comandos -stop "NT Kernel Logger" ou tracelog -stop GlobalLogger para interrompê-lo. Quando você usa um dos comandos para interromper uma sessão de rastreamento de sessão de rastreamento do Agente Global , o Tracelog interrompe o provedor, mas ele não redefine os valores das entradas do Registro. Para redefinir os valores das entradas do Registro do Agente Global, use tracelog -remove.

-systemrundown [LoggerName]
Solicita que o SystemTraceProvider registre eventos de rundown direcionados à sessão LoggerName . Consulte Configurando e iniciando uma sessão SystemTraceProvider para obter informações sobre como iniciar uma sessão de rastreamento.

Esse comando só está disponível em Windows 8 e versões posteriores do Windows.

-timeoutvalue
Especifica o valor de tempo limite, em milissegundos (ms), a ser usado ao habilitar provedores com o comando tracelog -enable . O tempo limite padrão é 0.

Se o valor do tempo limite for 0, o Tracelog chamará o retorno de chamada habilitado de cada provedor e retornará imediatamente, sem aguardar a conclusão do retorno de chamada.

Para habilitar provedores de forma síncrona, especifique um valor de tempo limite. Se você especificar um valor de tempo limite, o Tracelog aguardará até que o retorno de chamada de habilitação de cada provedor seja encerrado ou o tempo limite expire.

Ao habilitar vários provedores de uma só vez, o tempo limite é aplicado a cada um sequencialmente.

-update [LoggerName]
O comando tracelog -update altera as propriedades de uma sessão de rastreamento enquanto ela está em execução.

Em um comando tracelog -update , o parâmetro -guid é válido somente ao atualizar uma sessão de rastreamento privado (-um). Para adicionar ou remover provedores de uma sessão de rastreamento padrão enquanto a sessão estiver em execução, use os comandos tracelog -enable e tracelog -disable .

Se você iniciar uma sessão de log de rastreamento (-f), poderá atualizar para uma sessão em tempo real (-rt), mas as mensagens continuarão sendo enviadas para o log de rastreamento, além do consumidor de rastreamento. Você não pode eliminar o log da sessão atualizando. No entanto, antes de adicionar a entrega de mensagens em tempo real a uma sessão de log de rastreamento, primeiro você deve usar o comando tracelog -flush para liberar os buffers.

Se você iniciar uma sessão em tempo real (-rt) e atualizar para uma sessão de log de rastreamento (-f), novas mensagens de rastreamento não serão mais enviadas diretamente ao consumidor de rastreamento; eles são enviados apenas para o log de rastreamento. Para adicionar um log de rastreamento a uma sessão de rastreamento em tempo real, use -rt e -f no comando tracelog -update . Antes de adicionar a entrega de mensagens em tempo real a uma sessão de log de rastreamento, primeiro você deve usar o comando tracelog -flush para liberar os buffers.

Não é possível atualizar uma sessão de rastreamento do Agente Global.

Para uma sessão de rastreamento privada (modo de usuário), você pode atualizar apenas o nome do arquivo de log (-f) e o valor do temporizador de liberação (-ft).

Para atualizar os sinalizadores e níveis, use o comando tracelog -enable para reabilitar o provedor com novos sinalizadores ou níveis.

O Tracelog usa a função ControlTrace para implementar um comando tracelog -update . Para obter mais informações sobre essa função, consulte a documentação do SDK do Microsoft Windows.

[opções]

-addtotriagedump

Observação

Essa opção não deve ser usada, exceto quando talvez seja necessário exibir eventos de um despejo de kernel usando o depurador.

Especifica que todos os buffers ativos para a sessão estão disponíveis para serem adicionados a um despejo de memória de triagem. Os despejos de triagem são limitados em tamanho e, se os buffers da sessão fizerem com que o despejo exceda seu tamanho máximo, os buffers serão deixados de fora.

-Acrescentar
Acrescenta as mensagens de rastreamento ao arquivo de log de rastreamento de eventos (.etl) especificado pelo parâmetro -f . O padrão é criar um novo arquivo.

Esse parâmetro é válido apenas em comandos que incluem -f e não incluem -rt ou -cir.

-bBufferSize
Especifica o tamanho, em KB, de cada buffer alocado para a sessão de rastreamento. O valor padrão é determinado pelo número de processadores, pela quantidade de memória física e pelo sistema operacional em uso.

-btn
Especifica o número (n) de buffers a serem preenchidos antes de começar a liberá-los. Essa opção está disponível a partir de Windows 8.1.

-Buffer
Inicia uma sessão de rastreamento em buffer.

Em uma sessão de rastreamento em buffer, as mensagens de rastreamento são mantidas nos buffers de rastreamento. Eles não são enviados para um consumidor de rastreamento ou registrados em um log de rastreamento.

-cirMaxFileSize
Especifica o log circular (no final do arquivo, registre novas mensagens nas mensagens mais antigas) no arquivo de log de rastreamento de eventos (.etl). MaxFileSize especifica o tamanho máximo do arquivo em MB. Sem um valor MaxFileSize , esse parâmetro é ignorado.

O padrão é o registro em log sequencial sem limite de tamanho de arquivo.

-Cm
Habilita o rastreamento de acesso ao Registro (Configuration Manager). Esse parâmetro é válido apenas para uma sessão de rastreamento do Agente do Kernel NT.

-critsec
Rastreia eventos de seção críticos para um processo em uma sessão de rastreamento privado. Você pode iniciar um agente de processo de seção crítico em qualquer processo de modo de usuário, mesmo um que não seja instrumentado para rastreamento.

Use -pids para especificar o processo. Não use -guid com -critsec. O sistema define um GUID personalizado (CritSecGuid) para rastreamentos de seção críticos. Não é possível usar -heap e -critsec no mesmo comando.

-dpcisr
Habilita o rastreamento de DPCs (chamadas de procedimento adiado), ISRs (solicitações de serviço de interrupção), eventos de carregamento de imagem (-img) e comutadores de contexto no kernel. Esse parâmetro é válido apenas para uma sessão de rastreamento do Agente do Kernel NT.

Essa opção tem suporte apenas na versão do Tracelog incluída no Kit de Driver do Windows para Windows Vista e versões posteriores do WDK. A opção –dpcisr não pode ser usada com a opção -eflag .

Use o parâmetro -UsePerfCounter com -dpcisr. Esse parâmetro, que fornece um carimbo de data/hora exclusivo para cada evento, é exigido pelo Tracerpt, uma ferramenta usada para formatar e interpretar eventos DPC/ISR. Para obter informações sobre como interpretar e formatar esses eventos, consulte "Comentários", abaixo.

-eflagn [sinalizador...]
Habilita eventos de kernel usando sinalizadores adicionais para sessões de rastreamento do Agente do Kernel NT, mais notavelmente, os sinalizadores para habilitar o rastreamento de eventos DPC, ISR e comutador de contexto. A opção -eflag não pode ser usada com a opção –dpcisr .

-enablepropertyn
Consulte a descrição de EnabledProperties no struct EnableParameters passado como um parâmetro para EnableTraceEx2 para obter descrições e valores com suporte.

-EventIdFilter {-in-out|} **** n **** id1 id2 ...
Especifica um filtro de ID de evento com n IDs de evento (máximo de 64 IDs de evento permitidas). Essa opção está disponível a partir de Windows 8.1.

-ExeFilterExecutable_file [;Executable_file...]
Especifica os nomes de arquivos executáveis a serem filtrados. Você pode especificar uma lista de arquivos. Separe os nomes dos arquivos usando ponto e vírgula. Os arquivos não listados são excluídos. Essa opção está disponível a partir de Windows 8.1.

-f [LogFile]
Inicia uma sessão de log de rastreamento. LogFile especifica o caminho (opcional) e o nome do arquivo do log de rastreamento de eventos (.etl). O padrão é C:\LogFile.etl. Para colocar o arquivo em um computador remoto, inclua o nome do computador ou o endereço IP no caminho.

Se você usar -rt com -f, as mensagens de rastreamento serão enviadas para o consumidor e para um arquivo de log de rastreamento de eventos. Você não pode usar -rt ou -f com -buffering.

-fio
Habilita o rastreamento de eventos de E/S de arquivo. Esse parâmetro é válido apenas para uma sessão de rastreamento do Agente do Kernel NT.

Sinalizador -flag

Observação

Os sinalizadores foram substituídos por palavras-chave. Use -matchanykw , a menos que você esteja habilitando um provedor WPP.

Especifica os sinalizadores de rastreamento para os provedores na sessão de rastreamento. O valor do sinalizador determina quais eventos o provedor de rastreamento gera.

Sinalizador representa um valor de sinalizador definido no provedor de rastreamento, no formato decimal ou hexadecimal. O valor padrão é 0. Os valores de 0x01000000 até 0xFF000000 são reservados para uso futuro.

O significado do valor do sinalizador é definido independentemente por cada provedor de rastreamento. Normalmente, os sinalizadores representam níveis de relatórios cada vez mais detalhados.

O valor do sinalizador especificado em um comando tracelog -start se aplica a todos os provedores de rastreamento na sessão de rastreamento. Para definir sinalizadores diferentes para cada provedor de rastreamento, use tracelog -enable.

-ftFlushTime
Especifica com que frequência, em segundos, os buffers de mensagem de rastreamento são liberados. O tempo mínimo de liberação é de 1 segundo. O valor padrão é 0 (sem liberação forçada).

Essa liberação forçada é adicional às liberações que ocorrem automaticamente sempre que um buffer de mensagem de rastreamento está cheio e quando uma sessão de rastreamento é interrompida.

Consulte o comando tracelog -flush.

-guid {#GUID | file | *name}
Habilita os provedores de rastreamento especificados.

Se um arquivo for especificado, o Tracelog habilitará o rastreamento para todos os provedores especificados no arquivo. O arquivo deve ser formatado como:

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

Se um GUID do provedor for especificado, o GUID deverá ser precedido por um sinal de número (#).

Se um nome de provedor for especificado, o nome deverá ser preceedido por um asterisco (*). Em seguida, o nome será convertido em um GUID usando o mesmo algoritmo que . Fonte de evento do NET. Esse GUID será usado para habilitar o provedor.

Se você omitir esse parâmetro, nenhum provedor de rastreamento enviará mensagens para a sessão de rastreamento. No entanto, depois de iniciar a sessão de rastreamento, você pode usar um comando tracelog -enable para habilitar um ou mais provedores de rastreamento para a sessão.

-Gs
Gera um número de sequência global para cada mensagem de rastreamento.

Os números de sequência global são exclusivos para todas as sessões de rastreamento no computador. Por padrão, não há números de sequência.

Esse parâmetro não é válido com a sessão de rastreamento do Agente do Kernel NT.

-Heap
Rastreia eventos de memória de heap para um processo de modo de usuário. Você pode iniciar um agente de processo de heap em qualquer processo de modo de usuário, mesmo um que não seja instrumentado para rastreamento.

Use -pids para especificar o processo. Não use -guid com -heap. O sistema define um GUID personalizado (HeapGuid) para rastreamentos de memória de heap. Não é possível usar -heap e -critsec no mesmo comando.

-Hf
Habilita o rastreamento de falhas de páginas rígidas (falhas de página que exigem acesso ao disco para resolve). Esse parâmetro é válido apenas para uma sessão de rastreamento do Agente do Kernel NT.

-hybridshutdown {stop|persist}
Controla o comportamento do agente de desligamento híbrido. Essa opção está disponível a partir de Windows 8.

stop fará com que a sessão pare quando o sistema executar um desligamento híbrido. persist fará com que a sessão continue depois que o sistema for iniciado novamente a partir de um desligamento híbrido.

-Img
Habilita o rastreamento de eventos de carregamento de imagem. Esse parâmetro é válido apenas para uma sessão de rastreamento do Agente do Kernel NT.

-Independente

Observação

O modo independente deve ser habilitado em cada sessão de rastreamento.

Habilita o modo independente na sessão de rastreamento. O modo independente permite que a sessão colete eventos que outras sessões não independentes tenham descartado. Essa opção está disponível a partir de Windows 8.1.

-Kb
Use quilobytes (KB) para o tamanho do arquivo de log. O padrão é megabytes (MB).

-Kd
Redireciona as mensagens de rastreamento para KD ou Windbg, o que estiver anexado. Esse parâmetro também define o tamanho do buffer de rastreamento como 3 KB, o tamanho máximo do buffer para o depurador e ignora todos os parâmetros -b no comando .

O depurador deve estar em execução quando você envia um comando Tracelog com -kd. Caso contrário, Tracelog deixará de responder.

Para obter informações sobre como exibir mensagens de rastreamento em um depurador de kernel, consulte Comentários.

-Lbr *EventName[**+EventName+...]:Filter[,*Filter,...]
Configure o rastreamento lbr em eventos de kernel.

Use -eflag Help para obter uma lista de eventos de kernel.

-leveln
Especifica o nível de rastreamento para os provedores na sessão de rastreamento. O nível determina quais eventos o provedor de rastreamento gera.

Level representa um valor de nível no formato decimal ou hexadecimal. O valor padrão é 0.

O significado do valor de nível é definido independentemente por cada provedor de rastreamento. Normalmente, o nível de rastreamento representa a gravidade do evento (informações, aviso ou erro).

O valor de nível especificado em um comando tracelog -start se aplica a todos os provedores de rastreamento na sessão de rastreamento. Para definir níveis diferentes para cada provedor de rastreamento, use tracelog -enable.

-lowcapacity

Observação

Essa opção não deve ser usada, a menos que seja necessário para reduzir os custos de memória. Usar essa opção torna cada evento mais lento para registrar em log.

Usa um único buffer de cada vez para coletar eventos gerados em vários processadores. Essa opção seleciona o modo de registro em log EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING. Para obter mais informações, confira o SDK do Windows.


Gera um número de sequência local para cada mensagem de rastreamento.

Os números de sequência local são exclusivos em uma sessão de rastreamento. Por padrão, não há números de sequência.

Esse parâmetro não é válido com a sessão de rastreamento do Agente do Kernel NT.

-maxNumberOfBuffers
Especifica o número máximo de buffers alocados pelo Tracelog para a sessão de rastreamento. O valor padrão é determinado pelo número de processadores, pela quantidade de memória física e pelo sistema operacional em uso.

-matchallkwn
Especifica a máscara de bits MatchAllKeyWord que restringe a categoria de eventos que o provedor grava e é usada em conjunto com a opção -matchanykw .

Essa máscara de bits é opcional. Se o palavra-chave do evento atender à condição especificada na opção -matchanykw, o provedor gravará o evento somente se todos os bits nessa máscara existirem no palavra-chave do evento. Essa máscara não será usada se -matchanykw for zero.

Tracelog passa o valor n no parâmetro MatchAllKeyWord da chamada de função EnableTraceEx2 . Consulte o SDK do Windows para obter mais informações.

-matchanykwn
Especifica a máscara de bits MatchAnyKeyword que determina a categoria de eventos que o provedor grava.

O provedor gravará o evento se qualquer um dos bits palavra-chave do evento corresponder a qualquer um dos bits definidos nessa máscara. Tracelog passa o valor n no parâmetro MatchAnyKeyWord da chamada de função EnableTraceEx2 . Consulte o SDK do Windows para obter mais informações.

-minNumberOfBuffers
Especifica o número de buffers alocados inicialmente para armazenar mensagens de rastreamento. Quando os buffers estão cheios, o Tracelog aloca mais buffers até atingir o máximo. O valor padrão é determinado pelo número de processadores, pela quantidade de memória física e pelo sistema operacional em uso.

-newfileMaxFileSize
Cria um novo arquivo de log de rastreamento de eventos (.etl) sempre que o arquivo existente atinge MaxFileSize. MaxFileSize especifica o tamanho máximo de cada arquivo de log em MB. Sem um valor MaxFileSize , esse parâmetro é ignorado.

Ao usar -newfile, você também deve usar o parâmetro -fLogFile e o valor de LogFile deve ser um nome que inclua os caracteres %d para indicar um padrão decimal, por exemplo, trace%d.etl. Caso contrário, o comando falhará com ERROR_INVALID_NAME. O Windows incrementa o valor decimal no nome do arquivo sempre que cria um novo arquivo.

Esse parâmetro não é válido com pré-localização (-prealloc), log circular (-cir), com a sessão do Agente do Kernel NT ou para sessões de rastreamento privado.

-nodisk
Desabilita o rastreamento de eventos de E/S de disco físico. Esse parâmetro é válido apenas para uma sessão de rastreamento do Agente do Kernel NT.

-nonet
Desabilita o rastreamento de eventos TCP/IP e UDP (User Datagram Protocol). Esse parâmetro é válido apenas para uma sessão de rastreamento do Agente do Kernel NT.

-noprocess
Desabilita o rastreamento do início e do fim de cada processo. Esse parâmetro é válido apenas para uma sessão de rastreamento do Agente do Kernel NT.

-nothread
Desabilita o rastreamento do início e do fim de cada thread. Esse parâmetro é válido apenas para uma sessão de rastreamento do Agente do Kernel NT.

-Paginada
Usa memória paginável para os buffers de mensagem de rastreamento. Por padrão, o rastreamento de eventos usa memória não pageable para buffers.

Os provedores que exigem memória não paginável não poderão registrar eventos em uma sessão que usa memória paginável.

-pids#PIDs PID [PID...]
Especifica os processos de modo de usuário nos quais uma sessão de rastreamento de seção crítica ou memória de heap é executada. Válido somente com -heap ou -critsec.

#PIDs especifica o número de IDs de processo listadas com esse parâmetro. O PID representa um identificador de processo. Você pode especificar até dez PIDs com esse parâmetro.

Liste vários PIDs quando o provedor for executado em mais de um processo, como quando um único programa cria vários processos.

-PidFilternpid1 pid2 ...
Especifica um filtro Pid com n Pids (máximo de 8 permitido). Essa opção está disponível a partir de Windows 8.1.

-Pf
Habilita o rastreamento de todas as falhas de página. Esse parâmetro é válido apenas para uma sessão de rastreamento do Agente do Kernel NT.

-PkgIdFilterPackage Full Name [ **;**Nome completo do pacote...]
Especifica um filtro de ID de pacote. Você pode especificar uma lista de arquivos de pacote. Separe os nomes dos arquivos usando ponto e vírgula.

-PkgAppIdFilterPRAID [**;**PRAID...]
Especifica um filtro PRAID (identificador de aplicativo relativo ao pacote). O PRAID é o identificador exclusivo do aplicativo dentro do pacote. Você pode especificar mais de um PRAID. Separe as IDs usando ponto e vírgula. Essa opção está disponível para aplicativos UWP a partir de Windows 8.1.

-PmcCtr1,Ctr2,...:Name+Name+...
Configura a amostragem do PMC (contador de monitor de desempenho) nos eventos de kernel especificados. Essa opção está disponível a partir de Windows 8.

Use -ProfileSource Help para obter uma lista de contadores. Use -eflag Help para obter uma lista de eventos de kernel.

-Prealloc
Reserva espaço para o arquivo .etl antes de iniciar a sessão.

Esse parâmetro requer -seq ou -cir com MaxFileSize. Não é válido com -newfile.

-ProfileSourcesrc
Configurar a origem da criação de perfil a ser usada. Para obter a lista de fontes, use o tracelog de comando -ProfileSource Help. Essa opção está disponível a partir de Windows 8.

Essa opção só está disponível em Windows 8 e versões posteriores do Windows.

-Rt
Inicia uma sessão de rastreamento em tempo real. (Uma sessão de log de rastreamento (-f) é o padrão.)

Se você usar -rt e -f, as mensagens de rastreamento serão enviadas para o consumidor de rastreamento e para um arquivo de log de rastreamento de eventos. Você não pode usar -rt ou -f com -buffering. Para obter mais informações, consulte Sessão de rastreamento.

-Seguro
Habilita o rastreamento no modo seguro. Essa opção seleciona o modo de registro em log EVENT_TRACE_SECURE_MODE. Restringe quem pode registrar eventos na sessão para aqueles com permissão TRACELOG_LOG_EVENT.

-sessionguid
Especifica o valor do registro do GUID da sessão do autologger.

-SetProfIntn **** src

Importante

Não é recomendável alterar o intervalo de criação de perfil.

Configure o intervalo de criação de perfil (n) para a origem especificada, em que n está em unidades de 100ns. O padrão é 10000 (que é equivalente a 1ms). Essa opção está disponível a partir de Windows 8.

-seqMaxFileSize
Especifica o log sequencial (no final do arquivo, interromper a gravação de eventos) para o arquivo de log de rastreamento de eventos (.etl). MaxFileSize especifica o tamanho máximo do arquivo em MB. Sem um valor MaxFileSize , esse parâmetro é ignorado.

O log sequencial é o padrão, mas você pode usar esse parâmetro para definir o tamanho máximo do arquivo ou para usar -prealloc. Sem esse parâmetro, não há limite de tamanho de arquivo.

-sourceguidSourceGuid
Especifica o GUID passado como o parâmetro SourceId para as funções EnableTraceEx ou EnableTraceEx2 . A SourceId identifica a sessão que habilitou o provedor.

-stackwalk [Eventos]
Especifica eventos de kernel nos quais coletar pilhas. Use -eflag Help para obter uma lista de eventos de kernel. Esse parâmetro é válido apenas para as sessões de rastreamento do agente do kernel NT ou do agente do sistema.

-StackWalkFilter {-in-out|}nid1 id2 ...
Especifica um filtro de ID de evento com n IDs de evento (máximo de 64 IDs de evento permitidas). Essa opção está disponível a partir de Windows 8.1.

-systemlogger
O agente pode receber eventos SystemTraceProvider. Consulte Configurando e iniciando uma sessão SystemTraceProvider. Essa opção está disponível a partir do Windows 8.

-um
Especifica uma sessão de rastreamento privado Esse parâmetro é necessário para uma sessão de rastreamento privado.

-UseCPUCycle
Usa a frequência do processador (também chamada de "tiques de CPU") para medir o tempo de cada mensagem de rastreamento.

Esse temporizador fornece a resolução mais alta possível, mas é tão sensível que é propenso a erros, especialmente em sistemas gerenciados por energia e computadores com vários processadores. Por exemplo, se você especificar esse temporizador no computador que tem um processador Arm, isso poderá resultar em eventos fora de ordem. Em vez disso, -UsePerfCounter é recomendado para rastreamento de alta resolução.

-UsePerfCounter é o temporizador padrão para rastreamento de eventos.

-UsePerfCounter
Registra o valor do relógio do contador de desempenho de alta resolução, em vez de tempo de sistema de resolução inferior, com cada mensagem de rastreamento.

Como o relógio do contador de desempenho conta em unidades de aproximadamente 100 nanossegundos, ele fornece um carimbo de data/hora exclusivo para cada evento.

-UsePerfCounter é o temporizador padrão para rastreamento de eventos.

-UseSystemTime
Registra a hora do sistema, em vez da hora do relógio do contador de desempenho de alta resolução, com cada mensagem de rastreamento. Como o temporizador do sistema tem uma resolução de 10 milissegundos (em comparação com 100 nanossegundos para o relógio do contador de desempenho), vários eventos podem ter o mesmo tempo do sistema.

-UsePerfCounter é o temporizador padrão para rastreamento de eventos.

-? | ajuda | -?
Exibe informações de uso.

Comentários

Os comentários a seguir se aplicam a vários dos comandos Tracelog.

Erros de sintaxe

O Tracelog não exibe erros para todas as combinações de sintaxe incorretas, como quando você tenta atualizar uma configuração que não pode ser alterada. Em vez disso, ele ignora as partes inválidas do comando e exibe uma mensagem de êxito.

Agentes do sistema

O Windows usa sessões de rastreamento para muitas finalidades, algumas das quais são críticas para a operação adequada. Não interrompa as sessões de rastreamento que você não iniciou.

Enumguid

Para determinar se um comando tracelog -start ou tracelog -enable foi bem-sucedido, use um comando tracelog -enumguid para determinar se os provedores foram habilitados e, em seguida, use um comando tracelog -l (List) para examinar as propriedades da sessão de rastreamento.

Sessões em tempo real e de log

Uma sessão de rastreamento pode ser uma sessão de rastreamento em tempo real e uma sessão de log de rastreamento. Se você incluir os parâmetros -rt (tempo real) e -f (sessão de log) no mesmo comando, o sistema enviará o conteúdo do buffer para o log e para um consumidor de rastreamento. No entanto, antes de adicionar a entrega de mensagens em tempo real a uma sessão de log de rastreamento, os buffers devem ser liberados usando o comando tracelog -flush .

Se você iniciar uma sessão em tempo real (-rt) e atualizar para uma sessão de log (-f), todas as novas mensagens de rastreamento serão enviadas apenas para o arquivo de log. Para adicionar um arquivo de log a uma sessão em tempo real, use -rt e -f no comando tracelog -update .

Se você iniciar uma sessão de log (-f), poderá atualizar para uma sessão em tempo real (-rt), mas as mensagens continuarão a ser enviadas para o log, além do consumidor de rastreamento. Você não pode eliminar o log da sessão atualizando.

Para exibir ou salvar mensagens de rastreamento de uma sessão somente em tempo real, você também pode usar um consumidor de rastreamento, como Tracefmt, ou usar TraceView, que é um controlador de rastreamento (como Tracelog) e um consumidor de rastreamento. Ao usar Tracefmt, inclua o parâmetro -rt no comando Tracefmt.

Sinalizadores e níveis

A maioria dos provedores de rastreamento não gera mensagens de rastreamento, a menos que o sinalizador ou o nível esteja definido como um valor específico. Os provedores usam sinalizadores ou níveis para controlar o que está sendo rastreado. Se o arquivo de log de rastreamento de eventos estiver vazio, examine os sinalizadores e níveis no provedor de rastreamento.

Para garantir que as mensagens de rastreamento sejam sempre geradas, conclua as seguintes etapas:

  1. Defina o parâmetro flags como 0xFFFFFFFF para habilitar todas as configurações de sinalizador.

  2. Defina o parâmetro levels como 255 para habilitar todas as configurações de nível.

O parâmetro -eflag

O Tracelog tem um parâmetro -eflag (sinalizadores estendidos) que foi projetado para habilitar sinalizadores adicionais para a sessão de rastreamento do Agente de Kernel do NT– mais notavelmente, os sinalizadores para habilitar o rastreamento de eventos DPC, ISR e alternância de contexto. Como o comando tracelog -start agora inclui o parâmetro -dpcisr , o uso do parâmetro -eflag não é mais necessário e não é recomendado.

Parâmetros desatualizados

Nas versões anteriores do Tracelog, o comando tracelog -start suportava a combinação de parâmetros -rt b . Essa combinação foi substituída pelo parâmetro -buffering e não é mais válida.

O parâmetro -x foi removido porque parar todas as sessões de rastreamento pode causar instabilidade no sistema.

O parâmetro -disableex foi removido. Em vez disso, use -disable .

Agente de Kernel do NT

Para iniciar uma sessão de rastreamento com o Agente de Kernel do NT, omita o nome da sessão do comando tracelog -start e não use o parâmetro -guid para especificar um arquivo GUID do provedor. "NT Kernel Logger" é o nome de sessão padrão.

Se o nome da sessão for omitido ou for "NT Kernel Logger", o sistema iniciará uma sessão de rastreamento do Agente de Kernel NT, mesmo que você use um parâmetro -guid para especificar um GUID diferente de SystemTraceControlGUID, o GUID de controle para a sessão de rastreamento do Agente de Kernel do NT. Se você especificar um GUID diferente, o sistema retornará um erro ("Agente do Sistema não aceita guids de aplicativo"), mas ainda iniciará uma sessão de rastreamento do Agente de Kernel NT.

Por padrão, quando o Tracelog inicia uma sessão de rastreamento do Agente de Kernel NT, ele habilita rastreamentos de eventos de processo, thread, E/S de disco físico e TCP/IP, mas você pode usar os parâmetros para desabilitar o rastreamento desses eventos e habilitar o rastreamento de outros eventos.

Eventos DPC/ISR

Como o Tracerpt espera uma hora do relógio do contador de desempenho do sistema como o carimbo de data/hora, use o parâmetro Tracelog -UsePerfCounter ao iniciar a sessão de rastreamento.

Como os eventos DPC e ISR são coletados por instrumentação especial, eles não aparecem na linha rastreamento habilitado da tabela exibida pelo Tracelog para confirmar um comando.

Para obter mais informações, consulte Exemplo 15: Medindo o tempo de DPC/ISR.