Enumeração de COR_PRF_MONITOR
Contém valores que são utilizados para especificar comportamentos, capacidades ou eventos aos quais o gerador de perfis pretende subscrever.
Syntax
typedef enum {
COR_PRF_MONITOR_NONE = 0x00000000,
COR_PRF_MONITOR_FUNCTION_UNLOADS = 0x00000001,
COR_PRF_MONITOR_CLASS_LOADS = 0x00000002,
COR_PRF_MONITOR_MODULE_LOADS = 0x00000004,
COR_PRF_MONITOR_ASSEMBLY_LOADS = 0x00000008,
COR_PRF_MONITOR_APPDOMAIN_LOADS = 0x00000010,
COR_PRF_MONITOR_JIT_COMPILATION = 0x00000020,
COR_PRF_MONITOR_EXCEPTIONS = 0x00000040,
COR_PRF_MONITOR_GC = 0x00000080,
COR_PRF_MONITOR_OBJECT_ALLOCATED = 0x00000100,
COR_PRF_MONITOR_THREADS = 0x00000200,
COR_PRF_MONITOR_REMOTING = 0x00000400,
COR_PRF_MONITOR_CODE_TRANSITIONS = 0x00000800,
COR_PRF_MONITOR_ENTERLEAVE = 0x00001000,
COR_PRF_MONITOR_CCW = 0x00002000,
COR_PRF_MONITOR_REMOTING_COOKIE = 0x00004000 |
COR_PRF_MONITOR_REMOTING,
COR_PRF_MONITOR_REMOTING_ASYNC = 0x00008000 |
COR_PRF_MONITOR_REMOTING,
COR_PRF_MONITOR_SUSPENDS = 0x00010000,
COR_PRF_MONITOR_CACHE_SEARCHES = 0x00020000,
COR_PRF_ENABLE_REJIT = 0x00040000,
COR_PRF_ENABLE_INPROC_DEBUGGING = 0x00080000,
COR_PRF_ENABLE_JIT_MAPS = 0x00100000,
COR_PRF_DISABLE_INLINING = 0x00200000,
COR_PRF_DISABLE_OPTIMIZATIONS = 0x00400000,
COR_PRF_ENABLE_OBJECT_ALLOCATED = 0x00800000,
COR_PRF_MONITOR_CLR_EXCEPTIONS = 0x01000000,
COR_PRF_MONITOR_ALL = 0x0107FFFF,
COR_PRF_ENABLE_FUNCTION_ARGS = 0X02000000,
COR_PRF_ENABLE_FUNCTION_RETVAL = 0X04000000,
COR_PRF_ENABLE_FRAME_INFO = 0X08000000,
COR_PRF_ENABLE_STACK_SNAPSHOT = 0X10000000,
COR_PRF_USE_PROFILE_IMAGES = 0x20000000,
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST
= 0x40000000,
COR_PRF_DISABLE_ALL_NGEN_IMAGES = 0x80000000,
COR_PRF_ALL = 0x8FFFFFFF,
COR_PRF_REQUIRE_PROFILE_IMAGE = COR_PRF_USE_PROFILE_IMAGES |
COR_PRF_MONITOR_CODE_TRANSITIONS |
COR_PRF_MONITOR_ENTERLEAVE,
COR_PRF_ALLOWABLE_AFTER_ATTACH = COR_PRF_MONITOR_THREADS |
COR_PRF_MONITOR_MODULE_LOADS |
COR_PRF_MONITOR_ASSEMBLY_LOADS |
COR_PRF_MONITOR_APPDOMAIN_LOADS |
COR_PRF_ENABLE_STACK_SNAPSHOT |
COR_PRF_MONITOR_GC |
COR_PRF_MONITOR_SUSPENDS |
COR_PRF_MONITOR_CLASS_LOADS |
COR_PRF_MONITOR_JIT_COMPILATION,
COR_PRF_MONITOR_IMMUTABLE = COR_PRF_MONITOR_CODE_TRANSITIONS |
COR_PRF_MONITOR_REMOTING |
COR_PRF_MONITOR_REMOTING_COOKIE |
COR_PRF_MONITOR_REMOTING_ASYNC |
COR_PRF_ENABLE_REJIT |
COR_PRF_ENABLE_INPROC_DEBUGGING |
COR_PRF_ENABLE_JIT_MAPS |
COR_PRF_DISABLE_OPTIMIZATIONS |
COR_PRF_DISABLE_INLINING |
COR_PRF_ENABLE_OBJECT_ALLOCATED |
COR_PRF_ENABLE_FUNCTION_ARGS |
COR_PRF_ENABLE_FUNCTION_RETVAL |
COR_PRF_ENABLE_FRAME_INFO |
COR_PRF_USE_PROFILE_IMAGES |
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST |
COR_PRF_DISABLE_ALL_NGEN_IMAGES
} COR_PRF_MONITOR;
Membros
As secções seguintes listam COR_PRF_MONITOR
os membros da enumeração por categoria. As categorias são:
Sem sinalizadores definidos
Membro | Description |
---|---|
COR_PRF_MONITOR_NONE |
Não existem sinalizadores definidos. |
Sinalizadores de chamada de retorno
Membro | Description |
---|---|
COR_PRF_MONITOR_ALL |
Ativa todos os eventos de chamada de retorno. |
COR_PRF_MONITOR_APPDOMAIN_LOADS |
Controla as AppDomainCreation* chamadas de retorno e AppDomainShutdown* na interface ICorProfilerCallback . |
COR_PRF_MONITOR_ASSEMBLY_LOADS |
Controla as AssemblyLoad* chamadas de retorno e AssemblyUnload* na interface ICorProfilerCallback . |
COR_PRF_MONITOR_CACHE_SEARCHES |
Controla as JITCachedFunctionSearch* chamadas de retorno na interface ICorProfilerCallback .O comportamento deste sinalizador é alterado no .NET Framework versão 2.0. |
COR_PRF_MONITOR_CCW |
Controla as COMClassicVTable* chamadas de retorno na interface ICorProfilerCallback . |
COR_PRF_MONITOR_CLASS_LOADS |
Controla as ClassLoad* chamadas de retorno e ClassUnload* na interface ICorProfilerCallback . |
COR_PRF_MONITOR_CLR_EXCEPTIONS |
Controla as ExceptionCLRCatcher* chamadas de retorno na interface ICorProfilerCallback . |
COR_PRF_MONITOR_CODE_TRANSITIONS |
Controla as chamadas de retorno UnmanagedToManagedTransition e ManagedToUnmanagedTransition na interface ICorProfilerCallback |
COR_PRF_MONITOR_ENTERLEAVE |
Controla as FunctionEnter* funções estáticas globais , FunctionLeave* e FunctionTailCall* a criação de perfis. |
COR_PRF_MONITOR_EXCEPTIONS |
Controla a chamada de retorno ExceptionThrown e as ExceptionSearch* chamadas de retorno , ExceptionOSHandler* , ExceptionUnwind* e ExceptionCatcher* na interface ICorProfilerCallback . |
COR_PRF_MONITOR_FUNCTION_UNLOADS |
Controla a chamada de retorno FunctionUnloadStarted na interface ICorProfilerCallback . |
COR_PRF_MONITOR_GC |
Controla as chamadas GarbageCollectionStarted, GarbageCollectionFinished, MovedReferences, MovedReferences2, SurvivingReferences, SurvivingReferences2, ObjectReferences, ObjectsAllocatedByClass, RootReferences, RootReferences2, HandleCreated, HandleDestroyed e FinalizeableObjectQueued nas ICorProfilerCallback* interfaces. Quando COR_PRF_MONITOR_GC é alocado, a recolha de lixo simultânea é desativada. |
COR_PRF_MONITOR_JIT_COMPILATION |
Controla as JITCompilation* chamadas de retorno , JITFunctionPitched e JITInlining na interface ICorProfilerCallback . |
COR_PRF_MONITOR_MODULE_LOADS |
Controla as ModuleLoad* chamadas de retorno , ModuleUnload* e ModuleAttachedToAssembly na interface ICorProfilerCallback . |
COR_PRF_MONITOR_OBJECT_ALLOCATED |
Controla a chamada de retorno ObjectAllocated na interface ICorProfilerCallback . |
COR_PRF_MONITOR_REMOTING |
Controla as Remoting* chamadas de retorno na interface ICorProfilerCallback . |
COR_PRF_MONITOR_REMOTING_ASYNC |
Controla se as Remoting* chamadas de retorno monitorizarão eventos assíncronos. |
COR_PRF_MONITOR_REMOTING_COOKIE |
Controla se um cookie é transmitido para as Remoting* chamadas de retorno. |
COR_PRF_MONITOR_SUSPENDS |
Controla as RuntimeSuspend* chamadas de retorno , , RuntimeThreadSuspended e RuntimeThreadResumed na interface ICorProfilerCallback. RuntimeResume* |
COR_PRF_MONITOR_THREADS |
Controla as chamadas de retorno ThreadCreated, ThreadDestroyed, ThreadAssignedToOSThread e ThreadNameChanged nas interfaces ICorProfilerCallback e ICorProfilerCallback2 . |
Sinalizadores de ativação de funcionalidades
Membro | Description |
---|---|
COR_PRF_ENABLE_FRAME_INFO |
Ativa a obtenção de uma função genérica exata ClassID ao chamar o método GetFunctionInfo2 com um COR_PRF_FRAME_INFO valor devolvido pela chamada de retorno FunctionEnter2 . |
COR_PRF_ENABLE_FUNCTION_ARGS |
Ativa o rastreio de argumentos com a chamada de retorno FunctionEnter2 ou a chamada de retorno FunctionEnter3WithInfo e o método GetFunctionEnter3Info . |
COR_PRF_ENABLE_FUNCTION_RETVAL |
Ativa o rastreio dos valores devolvidos através da chamada de retorno FunctionLeave2 ou do método FunctionLeave3WithInfo e GetFunctionLeave3Info . |
COR_PRF_ENABLE_INPROC_DEBUGGING |
Preterido. A depuração de processos não é suportada. Este sinalizador não tem efeito. |
COR_PRF_ENABLE_JIT_MAPS |
Preterido. Permite que o gerador de perfis obtenha mapas il-to-native com GetILToNativeMapping. A partir da .NET Framework 2.0, o runtime controla sempre os mapas il-to-native; portanto, este sinalizador é sempre considerado como estando definido. |
COR_PRF_ENABLE_OBJECT_ALLOCATED |
Informa o runtime de que o gerador de perfis pode querer notificações de alocação de objetos. Este sinalizador tem de ser definido durante a inicialização. Permite que o gerador de perfis utilize posteriormente o COR_PRF_MONITOR_OBJECT_ALLOCATED sinalizador para receber chamadas de retorno ObjectAllocated . |
COR_PRF_ENABLE_REJIT |
Ativa as chamadas para os métodos RequestReJIT e RequestRevert . O gerador de perfis tem de definir este sinalizador no arranque. Se o gerador de perfis especificar este sinalizador, também tem de especificar COR_PRF_DISABLE_ALL_NGEN_IMAGES . |
COR_PRF_ENABLE_STACK_SNAPSHOT |
Ativa chamadas para o método DoStackSnapshot . |
Sinalizadores de configuração
Membro | Description |
---|---|
COR_PRF_DISABLE_ALL_NGEN_IMAGES |
Impede o carregamento de todas as imagens nativas (incluindo imagens melhoradas pelo profiler). Se este sinalizador e o COR_PRF_USE_PROFILE_IMAGES sinalizador forem ambos especificados, COR_PRF_DISABLE_ALL_NGEN_IMAGES será utilizado. |
COR_PRF_DISABLE_INLINING |
Desativa todo o inlining. |
COR_PRF_DISABLE_OPTIMIZATIONS |
Desativa todas as otimizações de código. |
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST |
Desativa as verificações de transparência de segurança que são normalmente efetuadas durante a compilação just-in-time (JIT) e o carregamento de classes para assemblagens de confiança total. Isto pode facilitar a execução de alguma instrumentação. |
COR_PRF_USE_PROFILE_IMAGES |
Faz com que a pesquisa de imagens nativa procure imagens melhoradas pelo profiler. Se não for encontrada nenhuma imagem melhorada do profiler para uma determinada assemblagem, o runtime de linguagem comum reverterá para o JIT para essa assemblagem. Se este sinalizador e o COR_PRF_DISABLE_ALL_NGEN_IMAGES sinalizador forem ambos especificados, COR_PRF_DISABLE_ALL_NGEN_IMAGES será utilizado. |
Sinalizadores compostos
Membro | Description |
---|---|
COR_PRF_ALL |
Representa todos os COR_PRF_MONITOR valores de sinalizador. |
COR_PRF_ALLOWABLE_AFTER_ATTACH |
Representa todos os COR_PRF_MONITOR sinalizadores que podem ser definidos depois de o gerador de perfis ser anexado a uma aplicação em execução. A secção sintaxe indica os sinalizadores individuais presentes nesta máscara de bits. |
COR_PRF_MONITOR_ALL |
Ativa todos os eventos de chamada de retorno. |
COR_PRF_MONITOR_IMMUTABLE |
Representa todos os COR_PRF_MONITOR sinalizadores que só podem ser definidos durante a inicialização. Tentar alterar qualquer um destes sinalizadores após a inicialização devolve um HRESULT valor que indica falha. |
COR_PRF_REQUIRE_PROFILE_IMAGE |
Representa todos os COR_PRF_MONITOR sinalizadores que requerem imagens melhoradas de perfil. |
Observações
É utilizado um COR_PRF_MONITOR
valor com os métodos ICorProfilerInfo::GetEventMask e ICorProfilerInfo::SetEventMask para definir as notificações de evento que o runtime de idioma comum faz ao gerador de perfis.
Requisitos
Plataformas: Veja Requisitos do Sistema.
Cabeçalho: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
.NET Framework Versões: Disponível desde 1.0