Função de FunctionTailcall3WithInfo
Notifica o criador de perfil que a função atualmente em execução está prestes a realizar uma chamada de cauda para outra função e fornece um identificador que pode ser passado para o o método de ICorProfilerInfo3::GetFunctionTailcall3Info para recuperar o quadro de pilha.
void __stdcall FunctionTailcall3WithInfo(
[in] FunctionIDOrClientID functionIDOrClientID,
[in] COR_PRF_ELT_INFO eltInfo);
Parâmetros
functionIDOrClientID
[in] O identificador da função atualmente em execução que está prestes a fazer um Laço de chamada.eltInfo
[in] Identificador opaco que representa informações sobre um quadro de pilha determinado. Esse identificador é válido apenas durante o retorno de chamada para o qual é passado.
Comentários
O FunctionTailcall3WithInfo o método de retorno de chamada notifica o profiler à medida que são chamadas de funções e permite que o profiler usar o o método de ICorProfilerInfo3::GetFunctionTailcall3Info para inspecionar o quadro de pilha. Para acessar as informações do quadro de pilha, o COR_PRF_ENABLE_FRAME_INFO sinalizador precisa ser definido. O profiler pode usar o o método de ICorProfilerInfo::SetEventMask para definir os sinalizadores de evento e, em seguida, use o ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo método para registrar a sua implementação desta função.
O FunctionTailcall3WithInfo função é um retorno de chamada; Você deve implementá-la. A implementação deve usar o __declspec(naked) atributo de classe de armazenamento.
O mecanismo de execução não salva qualquer registradores antes de chamar essa função.
Na entrada, você deve salvar todos os registros que você utiliza, incluindo aqueles na unidade de ponto flutuante (FPU).
Ao sair, você deve restaurar a pilha popping desativar todos os parâmetros que foram enviados pelo seu chamador.
A implementação de FunctionTailcall3WithInfo não deve bloquear, porque ele atrasará a coleta de lixo. A implementação não deve tentar uma coleta de lixo, porque a pilha não pode estar em um estado de amigável de coleta de lixo. Se a tentativa de uma coleta de lixo, o tempo de execução será bloqueado até que FunctionTailcall3WithInfo retorna.
Além disso, a função FunctionTailcall3WithInfo não deve chamar código gerenciado ou causar uma alocação de memória gerenciada de forma alguma.
Requisitos
Plataformas: Consulte Requisitos de sistema do .NET Framework.
Cabeçalho: Corprof. idl
Biblioteca: CorGuids.lib
.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0
Consulte também
Referência
SetEnterLeaveFunctionHooks3WithInfo
Outros recursos
A criação de perfil globais funções estáticas
Histórico de alterações
Date |
History |
Motivo |
---|---|---|
Outubro de 2010 |
Adicionado __stdcall a sintaxe. |
Comentários do cliente. |