Enumeração COR_PRF_MONITOR
Contém valores usados para especificar comportamentos, recursos ou eventos que o criador de perfis deseja assinar.
Sintaxe
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 seções a seguir listam membros de enumeração COR_PRF_MONITOR
por categoria. As categorias são:
Nenhum sinalizador definido
Membro | DESCRIÇÃO |
---|---|
COR_PRF_MONITOR_NONE |
Nenhum sinalizador está definido. |
Sinalizadores de retorno de chamada
Membro | DESCRIÇÃO |
---|---|
COR_PRF_MONITOR_ALL |
Habilita todos os eventos de retorno de chamada. |
COR_PRF_MONITOR_APPDOMAIN_LOADS |
Controla os retornos de chamada AppDomainCreation* e AppDomainShutdown* na interface ICorProfilerCallback |
COR_PRF_MONITOR_ASSEMBLY_LOADS |
Controla os retornos de chamada AssemblyLoad* e AssemblyUnload* na interface ICorProfilerCallback |
COR_PRF_MONITOR_CACHE_SEARCHES |
Controla os retornos de chamada JITCachedFunctionSearch* na interface ICorProfilerCallback.O comportamento deste sinalizador é alterado no .NET Framework versão 2.0. |
COR_PRF_MONITOR_CCW |
Controla os retornos de chamada COMClassicVTable* na interface ICorProfilerCallback. |
COR_PRF_MONITOR_CLASS_LOADS |
Controla os retornos de chamada ClassLoad* e ClassUnload* na interface ICorProfilerCallback. |
COR_PRF_MONITOR_CLR_EXCEPTIONS |
Controla os retornos de chamada ExceptionCLRCatcher* na interface ICorProfilerCallback. |
COR_PRF_MONITOR_CODE_TRANSITIONS |
Controla os retornos de chamada UnmanagedToManagedTransition e ManagedToUnmanagedTransition na interface ICorProfilerCallback |
COR_PRF_MONITOR_ENTERLEAVE |
Controla as funções estáticas globais de perfilFunctionEnter* , FunctionLeave* e FunctionTailCall* . |
COR_PRF_MONITOR_EXCEPTIONS |
Controla o retorno de chamada ExceptionThrown e os retornos de chamada ExceptionSearch* , ExceptionOSHandler* , ExceptionUnwind* e ExceptionCatcher* na interface ICorProfilerCallback. |
COR_PRF_MONITOR_FUNCTION_UNLOADS |
Controla o retorno de chamada FunctionUnloadStarted na interface ICorProfilerCallback. |
COR_PRF_MONITOR_GC |
Controla os retornos de chamada GarbageCollectionStarted, GarbageCollectionFinished, MovedReferences, MovedReferences2, SurvivingReferences, SurvivingReferences2, ObjectReferences, ObjectsAllocatedByClass, RootReferences, RootReferences2, HandleCreated, HandleDestroyed e FinalizeableObjectQueued nas interfaces ICorProfilerCallback* . Quando COR_PRF_MONITOR_GC é alocada, a coleta de lixo simultânea é desativada. |
COR_PRF_MONITOR_JIT_COMPILATION |
Controla os retornos de chamada JITCompilation* , JITFunctionPitched e JITInlining na interface ICorProfilerCallback. |
COR_PRF_MONITOR_MODULE_LOADS |
Controla os retornos de chamada ModuleLoad* , ModuleUnload* e ModuleAttachedToAssembly na interface ICorProfilerCallback. |
COR_PRF_MONITOR_OBJECT_ALLOCATED |
Controla o retorno de chamada ObjectAllocated na interface ICorProfilerCallback. |
COR_PRF_MONITOR_REMOTING |
Controla os retornos de chamada Remoting* na interface ICorProfilerCallback. |
COR_PRF_MONITOR_REMOTING_ASYNC |
Controla se os retornos de chamada Remoting* vão monitorar ou não os eventos de forma assíncrona. |
COR_PRF_MONITOR_REMOTING_COOKIE |
Controla se um cookie é passado para os retornos de chamada Remoting* . |
COR_PRF_MONITOR_SUSPENDS |
Controla os retornos de chamada RuntimeSuspend* , RuntimeResume* , RuntimeThreadSuspended e RuntimeThreadResumed na interface ICorProfilerCallback. |
COR_PRF_MONITOR_THREADS |
Controla os retornos de chamada ThreadCreated, ThreadDestroyed, ThreadAssignedToOSThread e ThreadNameChanged nas interfaces ICorProfilerCallback e ICorProfilerCallback2. |
Sinalizadores de habilitação de recurso
Membro | DESCRIÇÃO |
---|---|
COR_PRF_ENABLE_FRAME_INFO |
Habilita a recuperação de um ClassID exato para uma função genérica, chamando o método GetFunctionInfo2 com um valor COR_PRF_FRAME_INFO retornado pelo retorno de chamada FunctionEnter2. |
COR_PRF_ENABLE_FUNCTION_ARGS |
Permite rastreamento de argumento usando os retornos de chamada FunctionEnter2 ou FunctionEnter3WithInfo e o método GetFunctionEnter3Info. |
COR_PRF_ENABLE_FUNCTION_RETVAL |
Permite o rastreamento de valores retornados usando os retornos de chamada FunctionLeave2 ou FunctionLeave3WithInfo e o método GetFunctionLeave3Info. |
COR_PRF_ENABLE_INPROC_DEBUGGING |
Preterido. Não tem suporte no processo de depuração. Este sinalizador não tem efeito. |
COR_PRF_ENABLE_JIT_MAPS |
Preterido. Permite que o criador de perfil obtenha mapas IL para nativo usando GetILToNativeMapping. Do .NET Framework 2.0 em diante, o runtime sempre acompanha os mapas IL para nativo, portanto, esse sinalizador é sempre considerado como definido. |
COR_PRF_ENABLE_OBJECT_ALLOCATED |
Informa o runtime que o criador de perfil pode desejar para notificações de alocação do objeto. Este sinalizador deve ser definido durante a inicialização. Permite que o criador de perfil use posteriormente o sinalizador COR_PRF_MONITOR_OBJECT_ALLOCATED para receber retornos de chamada de ObjectAllocated. |
COR_PRF_ENABLE_REJIT |
Permite chamadas para os métodos RequestReJIT e RequestRevert. O criador de perfil deve definir este sinalizador na inicialização. Se o criador de perfil especificar este sinalizador, também deverá especificar COR_PRF_DISABLE_ALL_NGEN_IMAGES . |
COR_PRF_ENABLE_STACK_SNAPSHOT |
Permite chamadas para o método DoStackSnapshot. |
Sinalizadores de configuração
Membro | DESCRIÇÃO |
---|---|
COR_PRF_DISABLE_ALL_NGEN_IMAGES |
Impede o carregamento de todas as imagens nativas (incluindo imagens aprimoradas do criador de perfil). Se este sinalizador e o sinalizador COR_PRF_USE_PROFILE_IMAGES estiverem especificados, COR_PRF_DISABLE_ALL_NGEN_IMAGES será usado. |
COR_PRF_DISABLE_INLINING |
Desabilita todas as conexões embutidas. |
COR_PRF_DISABLE_OPTIMIZATIONS |
Desabilita todas as otimizações de código. |
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST |
Desabilita verificações de transparência de segurança que normalmente são feitas durante a compilação JIT (Just-in-Time) e o carregamento de classe para os conjuntos de confiança total. Isso pode facilitar a execução de instrumentação. |
COR_PRF_USE_PROFILE_IMAGES |
Faz com que a imagem nativa procure imagens aprimoradas para o criador de perfil. Se nenhuma imagem aprimorada para o criador de perfil for encontrada para determinada montagem, o Common Language Runtime (CRL) retornará ao JIT para esse assembly. Se este sinalizador e o sinalizador COR_PRF_DISABLE_ALL_NGEN_IMAGES estiverem especificados, COR_PRF_DISABLE_ALL_NGEN_IMAGES será usado. |
Sinalizadores compostos
Membro | DESCRIÇÃO |
---|---|
COR_PRF_ALL |
Representa todos os valores de sinalizador COR_PRF_MONITOR . |
COR_PRF_ALLOWABLE_AFTER_ATTACH |
Representa todos os sinalizadores COR_PRF_MONITOR que podem ser definidos após o criador de perfis ser anexado a um aplicativo em execução. A seção de sintaxe indica os sinalizadores individuais que estão presentes nesta bitmask. |
COR_PRF_MONITOR_ALL |
Habilita todos os eventos de retorno de chamada. |
COR_PRF_MONITOR_IMMUTABLE |
Representa todos os sinalizadores COR_PRF_MONITOR que podem ser definidos apenas durante a inicialização. A tentativa de alterar qualquer um desses sinalizadores após a inicialização retorna um valor HRESULT que indica falha. |
COR_PRF_REQUIRE_PROFILE_IMAGE |
Representa todos os sinalizadores COR_PRF_MONITOR que necessitam de imagens aprimoradas por perfil. |
Comentários
Um valor COR_PRF_MONITOR
é usado com os métodos ICorProfilerInfo::GetEventMask e ICorProfilerInfo::SetEventMask para definir as notificações de eventos que o Common Language Runtime faz no criador de perfil.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
Versões do .NET Framework: Disponíveis desde a versão 1.0
Confira também
Colaborar conosco no GitHub
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.