Compartilhar via


Exemplo de Inspeção do Quadro de Pilha

Este exemplo demonstra como recuperar informações, por meio de programação, sobre a pilha de chamadas em qualquer ponto de dentro do código em execução.A pilha permite que você determine a sequência de procedimentos que o aplicativo executou antes de chegar no procedimento atual.

Para obter Zoom, Para Cima e Ampliar e instruções para instalá-los

  • Siga um ou mais destes procedimentos:

    • Sobre o Help menu, Zoom, Para Cima e Ampliar Exemplos.

      O arquivo Leiame exibe informações sobre exemplos.

    • Visite o O Visual Studio 2008 Zoom, Para Cima e Ampliar Zoom, Para Cima e Ampliar site. As versões mais recentes dos exemplos estarão disponíveis nele.

    • Localize Zoom, Para Cima e Ampliar no computador em que Visual Studio está instalado. Por padrão, Zoom, Para Cima e Ampliar e um arquivo Leiame são instalados em unidade: \Arquivos de programas\Microsoft visual Studio 9.0\Zoom, Para Cima e Ampliar\LCID. Para edições Express do Visual Studio, todos os exemplos estão localizados on-line.

Para obter mais informações, consulte Localizando arquivos de exemplo.

Observação de segurança:

Esse código de exemplo é destinado a ilustrar um conceito, e ele mostra somente o código que é relevante para esse conceito. Ele pode não atender aos requisitos de segurança de um ambiente específico e não deve ser usado exatamente como mostrado. Recomendamos que você adicione código de segurança e tratamento de erros para tornar seus projetos tão seguros e robustos quanto for conveniente. A Microsoft fornece esse código de exemplo "Zoom, Para Cima e Ampliar encontra" sem garantias.

Para executar este exemplo.

  • Pressione F5.

Demonstra

O .NET Framework fornece a funcionalidade como parte da classe StackFrame.O exemplo demonstra duas outras classes: StackTrace e MethodInfo.O construtor sem-parâmetros de StackTrace retorna um conjunto completo de objetos StackFrame, fornecendo informações a partir do momento em que o aplicativo foi iniciado.Você também pode usar o construtor StackTrace que utiliza uma instância Exception.Este construtor fornece informações de rastreamento de pilha de volta para o código que disparou a exceção.

O manipulador de eventos para o botão Test Procedure Stack contém código para chamar diversos métodos, resultando em uma pilha de diversos níveis de profundidade.Clicar no botão Test Procedure Stack chama ProcA , que chama ProcB .ProcB chama o procedimento GetFullStackFrameInfo, passando em um novo objeto StackTrace:

GetFullStackFrameInfo(New StackTrace()) 

No procedimento de GetFullStackFrameInfo,o código usa a propriedade FrameCount do objeto StackTrace para recuperar o número total de quadros de pilha, trabalhando de trás para frente a partir do procedimento atual.Em seguida, o procedimento adiciona informações sobre cada quadro de pilha para a caixa de listagem no exemplo, chamando o método GetFrame para recuperar um objeto do quadro de pilhas indexado.

O procedimento GetStackFrameInfo chama GetFrame no objeto StackFrame o código enviado para ele, e, em seguida, ele recupera as propriedades do objeto MethodInfo para exibir informações sobre o procedimento na caixa de listagem.

O manipulador de eventos para o botão Test Exception Handling gera um erro várias camadas para baixo da pilha.O código aciona uma exceção e passa essa exceção para o construtor para o objeto StackFrame.

Consulte também

Referência

System.Diagnostics

StackFrame

System.Reflection

MethodInfo

FrameCount