Função StackSnapshotCallback
Fornece o criador de perfil com informações sobre cada quadro gerenciado e cada execução de quadros não gerenciados na pilha durante um exame da pilha, que é iniciada pelo ICorProfilerInfo2::DoStackSnapshot método.
HRESULT __stdcall StackSnapshotCallback (
[in] FunctionID funcId,
[in] UINT_PTR ip,
[in] COR_PRF_FRAME_INFO frameInfo,
[in] ULONG32 contextSize,
[in] BYTE context[],
[in] void *clientData
);
Parâmetros
funcId
[in] Se esse valor for zero, esse retorno de chamada é para uma execução de quadros não gerenciados; caso contrário, o identificador de uma função gerenciada e é esse retorno de chamada para um quadro gerenciado.ip
[in] O valor do ponteiro de instrução do código nativo no quadro.frameInfo
[in] A COR_PRF_FRAME_INFO valor que faça referência a informações sobre o registro de ativação. Esse valor é válido para uso somente durante esse retorno de chamada.contextSize
[in] O dimensionar do CONTEXT estrutura, que faz referência a context parâmetro.context
[in] Um ponteiro para um Win32 CONTEXT estrutura que representa o estado da CPU para esse quadro.The context o parâmetro é válido somente se o sinalizar COR_PRF_SNAPSHOT_CONTEXT foi passado ICorProfilerInfo2::DoStackSnapshot.
clientData
[in] Um ponteiro para dados do cliente, que são passados diretamente de ICorProfilerInfo2::DoStackSnapshot.
Comentários
The StackSnapshotCallback função é implementada pelo gravador criador de perfil. Você deve limitar a complexidade do trabalho realizado em StackSnapshotCallback. Por exemplo, ao usar ICorProfilerInfo2::DoStackSnapshot de forma assíncrono, o thread-alvo pode exercer bloqueios. Se o código dentro de StackSnapshotCallback requer bloqueios mesmos, poderia ensue um deadlock.
The ICorProfilerInfo2::DoStackSnapshot chamadas de método de StackSnapshotCallback função de uma vez por quadro gerenciado ou uma vez por execução de quadros não gerenciados. If StackSnapshotCallback é chamado para execução de quadros não gerenciados, o criador de perfil pode usar o contexto de registro (referenciado pela context parâmetro) para executar seu próprio movimentação de pilha não gerenciada. Nesse caso, o Win32 CONTEXT estrutura representa o estado da CPU para o quadro mais recentemente enviado dentro de execução de quadros não gerenciados. Embora o Win32 CONTEXT estrutura inclui valores para todos os registradores, você deve confiar somente nos valores do registro de ponteiro de pilha, registro de ponteiro de quadro, registro de ponteiro de instrução e não-volátil (isto é, preservado) registra inteiro.
Requisitos
Plataformas: See Requisitos de sistema do .NET framework.
Cabeçalho: CorProf.idl
Biblioteca: CorGuids.lib
.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0
Consulte também
Referência
Método ICorProfilerInfo2::DoStackSnapshot