Partilhar via


ICorProfilerCallback Interface

Fornece métodos usados pelo common language runtime (CLR) para notificar um profile de código quando ocorrem os eventos aos quais o profiler subscreveu.

Methods

Método Description
Método AppDomainCreationFinished Notifica o profiler de que um domínio de aplicação foi criado.
Método AppDomainCreationStarted Notifica o profiler de que está a ser criado um domínio de aplicação.
Método AppDomainShutdownFinished Notifica o profiler que um domínio de aplicação foi descarregado de um processo.
Método AppDomainShutdownStarted Notifica o profiler que um domínio de aplicação está a ser descarregado de um processo.
Método AssemblyLoadFinished Notifica o perfilador que um conjunto terminou de ser carregado.
Método AssemblyLoadStarted Notifica o profiler de que um assembly está a ser carregado.
Método AssemblyUnloadFinished Notifica o perfilador de que uma montagem foi descarregada.
Método AssemblyUnloadStarted Notifica o perfilador de que um conjunto está a ser descarregado.
Método ClassLoadFinished Notifica o perfilador que uma classe terminou de ser carregada.
Método ClassLoadStarted Notifica o perfilador de que uma classe está a ser carregada.
Método ClassUnloadFinished Notifica o perfilador que uma classe terminou de descarregar.
Método ClassUnloadStarted Notifica o profiler que uma classe está a ser descarregada.
Método COMClassicVTableCreated Notifica o perfilador que foi criado um wrapper chamável em tempo de execução (RCW) para o IID e a classe especificados.
Método COMClassicVTableDestroyed Notifica o perfilador de que um RCW está a ser destruído.
Método ExceptionCatcherEnter Notifica o profiler que o controlo está a ser passado para o bloco apropriado catch .
Método ExceptionCatcherLeave Notifica o profiler que o controlo está a ser passado para fora do bloco apropriado catch .
Método ExceptionCLRCatcherExecute Obsoleto no .NET Framework versão 2.0.
Método ExceptionCLRCatcherFound Obsoleto no .NET Framework 2.0.
Método ExceptionOSHandlerEnter Não implementado. Um perfilador que necessita de informação de exceção não gerida deve obter essa informação por outros meios.
Método ExceptionOSHandlerLeave Não implementado. Um perfilador que necessita de informação de exceção não gerida deve obter essa informação por outros meios.
Método ExceptionSearchCatcherFound Notifica o profiler que a fase de pesquisa do tratamento de exceções localizou um handler para a exceção que foi lançada.
Método ExceptionSearchFilterEnter Notifica o profiler de que está a ser executado um filtro de utilizador.
Método ExceptionSearchFilterLeave Notifica o profiler que um filtro de utilizador acabou de ser executado.
Método ExceptionSearchFunctionEnter Notifica o profiler que a fase de pesquisa do tratamento de exceções entrou numa função.
Método ExceptionSearchFunctionLeave Notifica o profiler que a fase de pesquisa do tratamento de exceções terminou a pesquisa numa função.
Método ExceptionThrown Notifica o perfilador de que foi lançada uma exceção.
Método ExceptionUnwindFinallyEnter Notifica o profiler que a fase de desmantelamento do tratamento de exceções está a introduzir uma finally cláusula contida na função especificada.
Método ExceptionUnwindFinallyLeave Notifica o profiler que a fase de desmantelamento do tratamento de exceções deixou uma finally cláusula.
Método ExceptionUnwindFunctionEnter Notifica o profiler que a fase de desmantelamento do tratamento de exceções entrou numa função.
Método ExceptionUnwindFunctionLeave Notifica o profiler que a fase de desmantelamento do tratamento de exceções terminou de desfazer uma função.
Método FunctionUnloadStarted Notifica o profiler que o tempo de execução começou a descarregar uma função.
Método Initialize Chamado para inicializar o profiler sempre que uma nova aplicação CLR é iniciada.
Método JITCachedFunctionSearchFinished Notifica o perfilador que uma pesquisa terminou por uma função que foi compilada anteriormente usando NGen.exe.
Método JITCachedFunctionSearchStarted Notifica o profiler que iniciou uma pesquisa por uma função que foi compilada anteriormente usando NGen.exe.
Método JITCompilationFinished Notifica o profiler que o compilador JIT terminou de compilar uma função.
Método JITCompilationStarted Notifica o perfilador que o compilador just-in-time (JIT) começou a compilar uma função.
Método JITFunctionPitched Notifica o profiler que uma função compilada por JIT foi removida da memória.
Método JITInlining Notifica o profiler que o compilador JIT está prestes a inserir uma função alinhada com outra função.
Método ManagedToUnmanagedTransition Notifica o profiler de que ocorreu uma transição de código gerido para código não gerido.
Método ModuleAttachedToAssembly Notifica o perfilador que um módulo está a ser ligado ao seu conjunto pai.
Método ModuleLoadFinished Notifica o perfilador de que um módulo terminou de carregar.
Método ModuleLoadStarted Notifica o perfilador de que um módulo está a ser carregado.
Método ModuleUnloadFinished Notifica o profiler que um módulo terminou de descarregar.
Método ModuleUnloadStarted Notifica o perfilador de que um módulo está a ser descarregado.
Método MovedReferences Notifica o perfilador sobre referências a objetos que foram movidas durante a recolha do lixo.
Método ObjectAllocated Notifica o profiler que a memória dentro do heap foi alocada para um objeto.
Método ObjectReferences Notifica o profiler sobre objetos na memória referenciados pelo objeto especificado.
Método ObjectsAllocatedByClass Notifica o profiler sobre o número de instâncias de cada classe especificada que foram criadas desde a recolha de lixo anterior.
RemotingInvocationCustomerMétodo Acabado Notifica o profiler que uma chamada remota foi concluída no cliente.
Método RemotingInvocationInstartStarted Notifica o perfilador de que uma chamada remota começou.
Método RemotingClientReceivingReply Notifica o profiler que a parte do lado do servidor de uma chamada remota foi concluída e que o cliente está agora a receber e prestes a processar a resposta.
Método RemotingClientSendingMessage Notifica o profiler de que o cliente está a enviar um pedido ao servidor.
Método RemotingServerInvocationReturned Notifica o profiler que o processo terminou de invocar um método em resposta a um pedido remoto de invocação de método.
Método RemotingServerInvocationStarted Notifica o profiler de que o processo está a invocar um método em resposta a um pedido remoto de invocação de método.
Método RemotingServerReceivingMessage Notifica o profiler de que o processo está a receber uma invocação remota de método ou um pedido de ativação.
Método RemotingServerSendingReply Notifica o profiler que o processo terminou de processar um pedido remoto de invocação de método e está prestes a transmitir a resposta através de um canal.
Método RootReferences Notifica o perfilador com informações sobre referências raízes após a recolha de lixo.
Método RuntimeResumeFinished Notifica o profiler que o tempo de execução retomou todas as threads de execução e voltou ao funcionamento normal.
Método RuntimeResumeStarted Notifica o profiler que o tempo de execução está a retomar todos os threads de execução.
Método RuntimeSuspendAborted Notifica o perfilador que o tempo de execução abortou a suspensão que estava a ocorrer.
Método RuntimeSuspendFinished Notifica o profiler que o tempo de execução concluiu a suspensão de todos os threads de execução.
Método RuntimeSuspendStarted Notifica o profiler que o tempo de execução está prestes a suspender todas as threads de execução.
Método RuntimeThreadResumed Notifica o perfilador que o thread especificado foi retomado após ter sido suspenso.
Método RuntimeThreadSuspended Notifica o perfilador que a thread especificada foi, ou está prestes a ser, suspensa.
Método de Desligamento Notifica o perfilador de que a aplicação está a desligar-se.
Método ThreadAssignedToOSThread Notifica o profiler que um thread gerido está a ser implementado usando um determinado thread do sistema operativo (SO).
Método ThreadCreated Notifica o perfilador de que foi criado um tópico.
Método ThreadDestroyed Notifica o perfilador de que um tópico foi destruído.
Método UnmanagedToManagedTransition Notifica o profiler que ocorreu uma transição de código não gerido para código gerido.

Observações

O CLR chama um método na ICorProfilerCallback interface (ou ICorProfilerCallback2) para notificar o profiler quando ocorre um evento ao qual o profiler se subscreveu. Esta é a interface principal de callback através da qual o CLR comunica com o profiler de código.

Um perfilador de código deve implementar os métodos da ICorProfilerCallback interface. Para o .NET Framework versão 2.0 ou posterior, o profiler também deve implementar os ICorProfilerCallback2 métodos. Cada implementação de método deve devolver um HRESULT com valor de S_OK no sucesso ou E_FAIL em caso de falha. Atualmente, o CLR ignora o HRESULT que é devolvido por cada callback, exceto ICorProfilerCallback::ObjectReferences.

No registo do Microsoft Windows, um profiler de código deve registar o seu objeto Component Object Model (COM) que implementa a ICorProfilerCallback interface e ICorProfilerCallback2 . Um profile de código subscreve os eventos para os quais pretende receber notificação ligando para ICorProfilerInfo::SetEventMask. Isto é normalmente feito na implementação do perfilador do ICorProfilerCallback::Initialize. O profiler consegue então receber notificações do runtime quando um evento está prestes a ocorrer ou acabou de ocorrer num processo em execução.

Observação

O profiler regista um único objeto COM. Se o profiler estiver a direcionar a versão 1.0 ou 1.1 do .NET Framework, esse objeto COM precisa de implementar apenas os métodos de ICorProfilerCallback. Se estiver a direcionar .NET Framework versão 2.0 ou posterior, o objeto COM deve também implementar os métodos de ICorProfilerCallback2.

Requerimentos

Plataformas: Consulte Requisitos do sistema.

Cabeçalho: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: Disponível desde 1.0

Consulte também