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.