Compartilhar 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 [Nome do Logger]
Configura as entradas do Registro para uma sessão do registrador automático. 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 [Nome do Logger]
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.

-desabilitar [LoggerName]
Desabilita os provedores de rastreamento especificados. Quando um provedor é 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.

A desativação 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.

-habilitar [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 estiver carregado) quando você habilitá-lo, o sistema registrará previamente o provedor, ou seja, ele reserva espaço para o provedor no banco de dados de registro ETW e salva o comando enable. Quando o provedor inicia 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, para alterar os sinalizadores e o nível de um provedor enquanto ele está rastreando ou para 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, em seguida, 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 sinalizadores e níveis diferentes para cada provedor de rastreamento, envie um comando tracelog -enable separado para cada provedor, com suas próprias configurações de sinalizador e nível.

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

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

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

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 que estão registrados com o ETW (Rastreamento de Eventos para Windows). Para obter uma descrição da exibição EnumguidEx, consulte Exibição Enumguid do Tracelog.

O 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 [Nome do Registrador]
Libera os buffers ativos da sessão de rastreamento LoggerName. Se LoggerName não for especificado, o Tracelog liberará os buffers da sessão de rastreamento do NT Kernel Logger.

Essa liberação forçada é um acréscimo às liberações que ocorrem automaticamente sempre que um buffer de mensagem de rastreamento está cheio e quando a sessão de rastreamento é interrompida e além das liberações que são 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 -f Logfile para liberar as mensagens de rastreio que estão atualmente no buffer para o arquivo de log de rastreio (.etl) especificado. Esse parâmetro é válido apenas para sessões de rastreamento em buffer (-buffering); 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 (consulta) as propriedades da sessão de rastreio especificada. Se você não especificar LoggerName, o Tracelog consultará a sessão de rastreamento do NT Kernel Logger.

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

-remover GlobalLogger
Remove e reinicializa os valores do Registro para uma sessão de rastreamento do Agente Global. Ele define o valor da entrada Start como 0 (não iniciar) e exclui as outras entradas do Registro. O comando tracelog -remove funciona apenas para sessões de rastreio 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 Start como 0, uma sessão do Global Logger 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 [Nome do Logger]
Inicia uma sessão de rastreamento usando o LoggerName selecionado para representar a sessão de rastreamento.

Use GlobalLogger como o LoggerName para especificar uma Sessão de Rastreamento do Agente Global. A sessão começa quando você reinicia o computador.

O LoggerName pode ser qualquer nome que atenda às diretrizes de nomenclatura do Windows, com até 1.024 caracteres. Se o nome incluir espaços, coloque-o 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 [Nome do Registrador]
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 Logger Global de Tempo de Inicialização que rastreia eventos do kernel, será necessário usar o comando tracelog -stop "NT Kernel Logger" ou tracelog -stop GlobalLogger para interrompê-la. Quando você usa um dos comandos para interromper uma sessão de rastreamento de sessão do Agente Global, o Tracelog interrompe o provedor, mas não redefine os valores das entradas do Registro. Para redefinir os valores das entradas do Registro do Registrador Global, use tracelog -remove.

-systemrundown [Nome do Registrador]
Solicita que o SystemTraceProvider registre eventos de encerramento 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 no Windows 8 e versões posteriores do Windows.

-timeout valor
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 de tempo limite for 0, o Tracelog chamará o retorno de chamada de habilitação de cada provedor e retornará imediatamente, sem esperar que o retorno de chamada seja concluído.

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 ativaçã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 [Nome do Logger]
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 privada (-um). Para adicionar ou remover provedores de uma sessão de rastreamento padrão enquanto a sessão está 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 a ser enviadas para o log de rastreamento, além do consumidor de rastreamento. Não é possível 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, você deve primeiro usar o comando tracelog -flush para liberar os buffers.

Se você iniciar uma sessão em tempo real (-rt) e, em seguida, atualizar para uma sessão de log de rastreamento (-f), novas mensagens de rastreamento não serão mais enviadas diretamente para o consumidor de rastreamento; elas serão enviadas 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, você deve primeiro 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 você precisar exibir eventos de um despejo de kernel usando o depurador.

Especifica que todos os buffers ativos da 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.

-b Tamanho do Buffer
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.

-bt n
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 do 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 retidas nos buffers de rastreamento. Eles não são enviados a um consumidor de rastreamento ou registrados em um log de rastreamento.

-Cir MaxFileSize
Especifica o log circular (no final do arquivo, registre novas mensagens sobre as 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 log sequencial sem limite de tamanho de arquivo.

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

-critsec
Rastreia eventos de seção crítica para um processo em uma sessão de rastreamento privada. Você pode iniciar um registrador de processo de seção crítica 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ítica. Você não pode usar -heap e -critsec no mesmo comando.

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

Essa opção tem suporte apenas na versão do Tracelog incluída no Windows Driver Kit 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.

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

-enablepropriedade n
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 permitidos). Essa opção está disponível a partir do Windows 8.1.

-Filtro ExeFilter Executable_file [; Executable_file ...]
Especifica os nomes dos 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 do Windows 8.1.

-f [Arquivo de log]
Inicia uma sessão de log de rastreamento. LogFile especifica o caminho (opcional) e o nome do arquivo de 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 ao consumidor e a 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 somente para uma sessão de rastreamento do NT Kernel Logger.

-bandeira Bandeira

Observação

As bandeiras foram substituídas 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.

Flag representa um valor de sinalizador definido no provedor de rastreamento, em formato decimal ou hexadecimal. O valor padrão é 0. Os valores de 0x01000000 a 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.

-Ft Tempo de descarga
Especifica com que frequência, em segundos, os buffers de mensagens de rastreamento são liberados. O tempo mínimo de descarga é 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 | arquivo | *nome}
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 de 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 precedido por um asterisco (*). O nome será convertido em um GUID usando o mesmo algoritmo que o . NET da Origem do Evento. 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 globais 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 NT Kernel Logger.

-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. Você não pode usar -heap e -critsec no mesmo comando.

-Hf
Habilita o rastreamento de falhas de página de hardware (falhas de página que exigem acesso ao disco para serem resolvidas). Esse parâmetro é válido somente para uma sessão de rastreamento do NT Kernel Logger.

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

stop fará com que a sessão pare quando o sistema executar um desligamento híbrido. persistir 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 somente para uma sessão de rastreamento do NT Kernel Logger.

-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 de modo não independente descartaram. Essa opção está disponível a partir do Windows 8.1.

-Kb
Use kilobytes (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, o Tracelog para de responder.

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

-lbr *Nome_do_Evento[**+Nome_do_Evento+...]:Filtro[,*Filtro,...]
Configure o rastreamento LBR em eventos de kernel.

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

-nível n
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.

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

O significado do valor do 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.

-baixa capacidade

Observação

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

Usa um único buffer por vez para coletar eventos gerados em vários processadores. Essa opção seleciona o modo de registro 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 locais 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 NT Kernel Logger.

-Max Número de buffers
Especifica o número máximo de buffers que o Tracelog aloca 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.

-matchallkw n
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 a 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 na palavra-chave do evento. Esta máscara não é 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.

-matchanykw n
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 de 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.

-Min Número de buffers
Especifica o número de buffers inicialmente alocados 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.

-novo arquivo MaxFileSize
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 -f LogFile 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é-alocação (-prealloc), log circular (-cir), com a sessão do NT Kernel Logger ou para sessões de rastreamento privadas.

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

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

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

-sem tópico
Desabilita o rastreamento do início e do fim de cada thread. Esse parâmetro é válido somente para uma sessão de rastreamento do NT Kernel Logger.

-Paginada
Usa memória paginável para os buffers de mensagens de rastreamento. Por padrão, o rastreamento de eventos usa memória não paginável 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 do modo de usuário nos quais uma memória de heap ou uma sessão de rastreamento de seção crítica é executada. Válido apenas com -heap ou -critsec.

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

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

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

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

-Filtro PkgIdFilter Nome completo do pacote [ **;**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.

-Filtro PkgAppIdFilter TRANÇA [**;**TRANÇA...]
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 uma PRAID. Separe as IDs usando ponto-e-vírgula. Essa opção está disponível para aplicativos UWP a partir do Windows 8.1.

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

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

-prealoc
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.

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

Essa opção só está disponível no 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 Rastrear sessão.

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

-sessionguid
Especifica o valor do Registro GUID da sessão do registrador automático.

-SetProfInt n **** 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 fonte especificada, onde n está em unidades de 100ns. O padrão é 10000 (o que equivale a 1 ms). Essa opção está disponível a partir do Windows 8.

-Seq MaxFileSize
Especifica o log seqüencial (no final do arquivo, pare de gravar 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 usar -prealloc. Sem esse parâmetro, não há limite de tamanho de arquivo.

-fonteguid SourceGuid
Especifica o GUID passado como o parâmetro SourceId para as funções EnableTraceEx ou EnableTraceEx2 . O 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 do kernel. Esse parâmetro é válido somente para o NT Kernel Logger ou sessões de rastreamento do logger 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 permitidos). Essa opção está disponível a partir do Windows 8.1.

-registrador de sistema
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.

-micrômetro
Especifica uma sessão de rastreamento privada Esse parâmetro é necessário para uma sessão de rastreamento privada.

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

Este temporizador fornece a resolução mais alta possível, mas é tão sensível que é propenso a erros, especialmente em sistemas com gerenciamento de energia e computadores multiprocessadores. Por exemplo, se você especificar esse temporizador em um computador que tenha 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 contador de desempenho de alta resolução, em vez da hora do sistema de resolução mais baixa, com cada mensagem de rastreamento.

Como o contador de desempenho conta em aproximadamente 100 unidades de 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 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 a mesma hora 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.

Registradores 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 nenhuma sessão 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 somente 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. Não é possível 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, certifique-se de incluir o parâmetro -rt no comando Tracefmt.

Bandeiras e níveis

A maioria dos provedores de rastreamento não gera nenhuma mensagem de rastreamento, a menos que o sinalizador ou nível seja 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 os 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 NT Kernel Logger – mais notavelmente, os sinalizadores para habilitar o rastreamento de eventos DPC, ISR e de 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 interromper 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 NT

Para iniciar uma sessão de rastreamento com o NT Kernel Logger, 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 da 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 NT Kernel Logger, 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 NT Kernel Logger. Se você especificar um GUID diferente, o sistema retornará um erro ("O Agente do Sistema não aceita guids do aplicativo"), mas ainda iniciará uma sessão de rastreamento do Agente do Kernel NT.

Por padrão, quando o Tracelog inicia uma sessão de rastreamento do NT Kernel Logger, ele habilita rastreamentos de processo, thread, E/S de disco físico e eventos 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 um tempo de contador de relógio 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 de rastreamento Habilitado da tabela que o Tracelog exibe para confirmar um comando.

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