Pilhas telefonar na API de criação de perfil
A API de criação de perfil fornece duas maneiras de obter telefonar pilhas: um método de instantâneo pilha, o que permite a coleta esparsa de pilhas de chamadas, e um método de pilha de sombra, que rastreia a pilha de chamadas no cada instante. Este tópico fornece uma visão geral sobre esses dois métodos.
Instantâneo da pilha
Um instantâneo de pilha é um rastreamento da pilha de um segmento em um instante in-time. A API de criação de perfil oferece suporte ao rastreamento de funções gerenciadas na pilha, mas deixa o rastreamento de funções não gerenciado para o movimentador de pilha do criador de perfil.
Para obter mais informações sobre como programar o criador de perfil para movimentar pilhas gerenciadas, consulte o ICorProfilerInfo2::DoStackSnapshot método neste conjunto de documentação e Pilha do criador de perfil movimento no .NET estrutura 2.0: Noções básicas e Beyond na biblioteca MSDN.
Pilha de sombra
Usando o método de instantâneo com muita freqüência pode criar rapidamente um problema de desempenho. Se você quiser executar rastreamentos de pilha com freqüência, seu criador de perfil em vez disso, deve criar uma pilha de sombra usando o FunctionEnter2, FunctionLeave2, FunctionTailcall2, and ICorProfilerCallback2 retornos de chamada de exceção. A pilha de sombra está sempre atualizada e rapidamente pode ser copiada para o armazenamento sempre que um instantâneo da pilha é necessária.
Uma pilha de sombra pode obter argumentos da função, valores de retorno e informações sobre instanciações genéricas. Essa informação está disponível somente pela pilha de sombra e pode ser obtida quando o controle é entregue a uma função. No entanto, essas informações não estejam disponível durante a execução da função.
Consulte também
Referência
Método ICorProfilerInfo2::SetEnterLeaveFunctionHooks2