Palavras-chave e níveis ETW no CLR
Os eventos ETW (rastreamento de eventos para Windows) pode ser filtrado por categoria e nível. As palavras-chave CLR ETW do evento permitem a filtragem de eventos por categoria; elas são usadas em combinações para os provedores de runtime e de encerramento. Os níveis de evento são identificados por sinalizadores.
Palavras-chave CLR ETW
As palavras-chave são sinalizadores que podem ser combinados para gerar valores. Na prática, você usa os valores hexadecimais das palavras-chave, em vez dos nomes da palavra-chave, ao chamar os utilitários de linha de comando.
Essas palavras-chave são descritas nas seguintes tabelas:
Combinações de palavras-chave para a resolução de símbolo do provedor de runtime
Combinações de palavras-chave para a resolução de símbolo do provedor de encerramento
Palavras-Chave de Runtime CLR ETW
A tabela a seguir lista as palavras-chave de runtime CLR ETW, seus valores e sua finalidade de uso.
Nome da palavra-chave de runtime | Valor | Finalidade |
---|---|---|
GCKeyword |
0x00000001 | Habilita a coleta de eventos de coleta de lixo. |
LoaderKeyword |
0x00000008 | Habilita a coleta de eventos de carregador. |
JITKeyword |
0x00000010 | Habilita a coleta de eventos JIT (Just-In-Time). |
NGenKeyword |
0x00000020 | Habilita a coleta de eventos de métodos de imagem nativa (métodos processados pelo Gerador de Imagem Nativa, Ngen.exe); usado com StartEnumerationKeyword e EndEnumerationKeyword . Essa palavra-chave tem uma alta sobrecarga. Ela gera eventos para cada método dentro de cada módulo do NGen carregado. Sempre que possível, em vez de usar essa palavra-chave, recomendamos o uso dos PDBs (bancos de dados do programa) gerados pelas ferramentas de criação de perfil para recuperar informações sobre os métodos dos módulos do NGen. Consulte também OverrideAndSuppressNGenEventsKeyword mais adiante nesta tabela. |
StartEnumerationKeyword |
0x00000040 | Habilita a enumeração de todos os métodos no runtime; usado em conjunto com NGenKeyword . |
EndEnumerationKeyword |
0x00000080 | Habilita a enumeração de todos os métodos destruídos no runtime; usado em conjunto com JITKeyword e NGenKeyword . |
SecurityKeyword |
0x00000400 | Habilita a coleta de eventos de segurança. |
AppDomainResourceManagementKeyword |
0x00000800 | Habilita a coleção de eventos de monitoramento de recursos no nível de um domínio do aplicativo. |
JITTracingKeyword |
0x00001000 | Habilita a coleta de eventos de rastreamento JIT. |
InteropKeyword |
0x00002000 | Habilita a coleta de eventos de interoperabilidade. |
ContentionKeyword |
0x00004000 | Habilita a coleta de eventos de contenção. |
ExceptionKeyword |
0x00008000 | Habilita a coleta de eventos de exceção. |
ThreadingKeyword |
0x00010000 | Habilita a coleta de eventos de pool de threads. |
OverrideAndSuppressNGenEventsKeyword |
0x00040000 | (Disponível no .NET Framwork 4.5 e posterior) Suprime a palavra-chave NGenKeyword de alta sobrecarga e impede a geração de eventos para os métodos que estão dentro dos módulos do NGen. A partir do .NET Framework 4.5, as ferramentas de criação de perfil devem usar OverrideAndSuppressNGenEventsKeyword e NGenKeyword em conjunto para suprimir a geração de eventos para os métodos nos módulos do NGen. Isso permite que a ferramenta de criação de perfil use os PDBs mais eficientes do NGen para obter informações sobre os métodos nos módulos do NGen. O CLR no .NET Framework 4 e versões anteriores não dá suporte à criação de PDBs do NGen. Nessas versões anteriores, o CLR não reconhecerá OverrideAndSuppressNGenEventsKeyword e processará NGenKeyword para gerar eventos para os métodos nos módulos do NGen. |
PerfTrackKeyWord |
0x2000000 | Habilita a coleta dos eventos ModuleLoad e ModuleRange . |
StackKeyword |
0x40000000 | Habilita a coleta de eventos de rastreamento de pilha do CLR. |
Palavras-Chave de Encerramento CLR ETW
A tabela a seguir lista as palavras-chave de encerramento CLR ETW, seus valores e sua finalidade de uso.
Nome da palavra-chave de encerramento | Valor | Finalidade |
---|---|---|
LoaderRundownKeyword |
0x00000008 | Habilita a coleta de eventos de carregador quando usado com StartRundownKeyword e EndRundownKeyword . |
JitRundownKeyword |
0x00000010 | Habilita a coleta dos eventos DCStart e DCEnd do método para métodos compilados pelo JIT quando usado com StartRundownKeyword e EndRundownKeyword . |
NGenRundownKeyword |
0x00000020 | Habilita a coleta dos eventos DCStart e DCEnd do método para métodos de imagem nativa do NGen quando usado com StartRundownKeyword e EndRundownKeyword . Essa palavra-chave tem uma alta sobrecarga. Ela gera eventos para cada método dentro de cada módulo do NGen carregado. Sempre que possível, em vez de usar essa palavra-chave, recomendamos o uso dos PDBs (bancos de dados do programa) gerados pelas ferramentas de criação de perfil para recuperar informações sobre os métodos dos módulos do NGen. Consulte também OverrideAndSuppressNGenEventsRundownKeyword mais adiante nesta tabela. |
StartRundownKeyword |
0x00000040 | Habilita a enumeração de estado do sistema durante um encerramento inicial. |
EndRundownKeyword |
0x00000100 | Habilita a enumeração de estado do sistema durante um encerramento final. |
AppDomainResourceManagementRundownKeyword |
0x00000800 | Habilita a coleta de eventos de monitoramento de recursos no nível de um AppDomain quando usado com StartRundownKeyword ou EndRundownKeyword . |
ThreadingKeyword |
0x00010000 | Habilita a coleta de eventos de pool de threads. |
OverrideAndSuppressNGenEventsRundownKeyword |
0x00040000 | (Disponível no .NET Framwork 4.5 e posterior) Suprime a palavra-chave NGenRundownKeyword de alta sobrecarga e impede a geração de eventos para os métodos que estão dentro dos módulos do NGen. A partir do .NET Framework 4.5, as ferramentas de criação de perfil devem usar OverrideAndSuppressNGenEventsRundownKeyword e NGenRundownKeyword em conjunto para suprimir a geração de eventos para os métodos nos módulos do NGen. Isso permite que a ferramenta de criação de perfil use os PDBs mais eficientes do NGen para obter informações sobre os métodos nos módulos do NGen. O CLR no .NET Framework 4 e versões anteriores não dá suporte à criação de PDBs do NGen. Nessas versões anteriores, o CLR não reconhecerá OverrideAndSuppressNGenEventsRundownKeyword e processará NGenRundownKeyword para gerar eventos para os métodos nos módulos do NGen. |
PerfTrackKeyWord |
0x2000000 | Habilita a coleta dos eventos ModuleDCStart , ModuleDCEnd , ModuleRangeDCStart e ModuleRangeDCEnd . |
Combinações de palavras-chave para a resolução de símbolo do provedor de runtime
Palavras-chave e sinalizadores | Domínio do aplicativo, assembly, eventos de carregamento/descarregamento do módulo | Eventos de carregamento/descarregamento do método (exceto eventos dinâmicos) | Eventos de carregamento/destruição de método dinâmico |
---|---|---|---|
LoaderKeyword |
Eventos de carregamento e descarregamento. | Nenhum. | Nenhum. |
JITKeyword (+ StartEnumerationKeyword não adiciona nada) |
Nenhum. | Eventos de carregamento. | Eventos de carregamento e descarregamento. |
JITKeyword +EndEnumerationKeyword |
Nenhum. | Eventos de carregamento e descarregamento. | Eventos de carregamento e descarregamento. |
NGenKeyword |
Nenhum. | Nenhum. | Não aplicável. |
NGenKeyword +StartEnumerationKeyword |
Nenhum. | Eventos de carregamento. | Não aplicável. |
NGenKeyword +EndEnumerationKeyword |
Nenhum. | Eventos de descarregamento. | Não aplicável. |
Combinações de palavras-chave para a resolução de símbolo do provedor de encerramento
Palavras-chave e sinalizadores | Domínio do aplicativo, assembly, eventos de DCStart/DCEnd do módulo | Eventos de DCStart/DCEnd do módulo (incluindo eventos de método dinâmico) |
---|---|---|
LoaderRundownKeyword +StartRundownKeyword |
Eventos DCStart . |
Nenhum. |
LoaderRundownKeyword +EndRundownKeyword |
Eventos DCEnd . |
Nenhum. |
JITKeyword +StartRundownKeyword |
Nenhum. | Eventos DCStart . |
JITKeyword +EndRundownKeyword |
Nenhum. | Eventos DCEnd . |
NGenKeyword +StartRundownKeyword |
Nenhum. | Eventos DCStart . |
NGenKeyword +EndRundownKeyword |
Nenhum. | Eventos DCEnd . |
Níveis de eventos ETW
Os eventos ETW também podem ser filtrados por nível. Se o nível for definido como 0x5, eventos de todos os níveis serão acionados, incluindo 0x5 e abaixo (que são eventos que pertencem às categorias habilitadas por meio de palavras-chave). Se o nível for definido como 0x2, somente os eventos que pertencem ao nível 0x2 e abaixo serão acionados.
Os níveis têm os seguintes significados:
0x5 – Detalhado
0x4 – Informativo
0x3 – Aviso
0x2 – Erro
0x1 – Crítico
0x0 – LogAlways