Compartilhar via


Exibir a pilha de chamadas e usar a janela Pilha de Chamadas no depurador

Ao usar a janela Pilha de Chamadas, você pode exibir chamadas de função ou procedimento que estão na pilha atualmente. A janela Pilha de Chamadas mostra a ordem em que os métodos e as funções são chamados. A pilha de chamadas é uma boa maneira de examinar e entender o fluxo de execução de um aplicativo.

Ao depurar símbolos que não estão disponíveis para a parte de uma pilha de chamadas, a janela Pilha de chamadas não poderá exibir as informações corretas dessa parte da pilha de chamadas, sendo exibido no lugar:

[Frames below may be incorrect and/or missing, no symbols loaded for name.dll]

Nota

As caixas de diálogo e os comandos de menu que você vê podem ser diferentes daqueles descritos aqui, dependendo de suas configurações ativas ou edição. Para alterar suas configurações, selecione Configurações de Importação e Exportação no menu Ferramentas. Consulte Redefinir todas as configurações. A janela Pilha de Chamadas é semelhante à perspectiva de Depuração em alguns IDEs, como o Eclipse.

Exibir a pilha de chamadas enquanto estiver no depurador

Durante a depuração, no menu Depurar, selecione Pilha de Chamadas do Windows > ou pressione ctrl+alt+C.

Captura de tela mostrando a janela Pilha de Chamadas. Uma seta identifica o registro de ativação em que o ponteiro de execução está localizado no momento. Por padrão, as informações desse registro de ativação aparecem nas janelas de origem, Locais, Automáticas, Inspeção e Desmontagem. Para alterar o contexto do depurador para outro quadro na pilha, alterne para outro registro de ativação.

Captura de tela mostrando a janela Pilha de Chamadas.

Uma seta amarela identifica o registro de ativação onde o ponteiro de execução está localizado atualmente. Por padrão, as informações desse registro de ativação aparecem nas janelas de origem, Locais, Automáticas, Inspeção e Desmontagem. Para alterar o contexto do depurador para outro quadro na pilha, alterne para outro registro de ativação.

Você também pode exibir quadros de pilha de exceção na pilha de chamadas durante a depuração. Para obter mais informações, consulte Exibir a pilha de chamadas no Auxiliar de exceção.

Exibir código que não é de usuário na janela Pilha de Chamadas

Para exibir o código externo ou que não é de usuário, alterne o botão Mostrar Código Externo, clique com o botão direito do mouse na janela Pilha de Chamadas e selecione Mostrar Código Externo.

Para exibir o código externo ou não pertencente ao usuário, alterne o botão Mostrar Código Externo na barra de ferramentas da pilha de chamadas ou clique com o botão direito do mouse na janela pilha de chamadas e selecione Mostrar Código Externo.

Código que não é de usuário é qualquer código que não é mostrado quando Apenas Meu Código está habilitado. No código gerenciado, os quadros de código não usuário são ocultos por padrão. A notação a seguir aparece no lugar dos quadros de código que não são de usuário:

[<External Code>]

Alternar para outro registro de ativação (alterar o contexto do depurador)

  1. Na janela Pilha de chamadas, clique com o botão direito do mouse no quadro de pilha cujos dados e código você deseja exibir.

    Ou você pode clicar duas vezes em um quadro na janela Pilha de Chamadas para alternar para esse quadro.

  2. Selecione Alternar para Quadro.

    Uma seta verde com uma parte final encaracolada aparece ao lado do quadro de pilha que você selecionou. O ponteiro de execução permanece no quadro original, que ainda está marcado com a seta amarela. Se você selecionar Etapa ou Continuar no menu Depurar, a execução continuará no quadro original, não no quadro selecionado.

Alterne o botão Exibir todos os threads para ver todos os threads relacionados na janela Pilha Paralela. A janela Pilhas Paralelas fornece visualizações das pilhas de chamadas para aplicativos multiencadeados.

Você pode pesquisar quadros de pilha de chamadas relevantes digitando termos de pesquisa relevantes na caixa de pesquisa localizada no canto superior esquerdo da janela da pilha de chamadas. Os quadros da pilha de chamadas pertinentes serão realçados.

Exibir o código-fonte de uma função na pilha de chamadas

Na janela Pilha de Chamadas, clique com o botão direito do mouse na função cujo código-fonte você deseja ver e selecione Ir para Código-Fonte.

Executar em uma função específica da janela de pilha de chamadas

Na janela Pilha de Chamadas, selecione a função, clique com o botão direito do mouse e escolha Executar para Cursor.

Definir um ponto de interrupção no ponto de saída de uma chamada de função

Consulte Definir um ponto de interrupção em uma função de pilha de chamadas.

Exibir chamadas de ou para outro tópico

Clique com o botão direito do mouse na janela Pilha de Chamadas e selecione Incluir chamadas para/de outros threads.

Rastrear visualmente a pilha de chamadas

No Visual Studio Enterprise (somente), você pode exibir mapas de código para a pilha de chamadas durante a depuração.

Na janela Pilha de Chamadas, abra o menu de atalho. Escolha Mostrar Pilha de Chamadas no Mapa de Código (Ctrl + Shift + `).

Para obter mais informações, consulte Mapear métodos na pilha de chamadas durante a depuração.

Mostrar pilha de chamadas no mapa de código

Exibir o código de desmontagem de uma função na pilha de chamadas (C#, C++, Visual Basic, F#)

Na janela Pilha de Chamadas, clique com o botão direito do mouse na função cujo código de desmontagem você deseja ver e selecione Ir para Desmontagem.

Alterar as informações opcionais exibidas

Clique com o botão direito do mouse na janela Pilha de Chamadas e defina ou desmarque Mostrar <as informações desejadas>.

Descompilar automaticamente o código externo do .NET

A partir do Visual Studio 2022 versão 17.7, você pode descompilar automaticamente o código .NET clicando duas vezes no código externo na janela Pilha de Chamadas. Para obter mais informações, consulte Gerar código-fonte a partir de assemblies .NET durante a depuração.

Carregar símbolos para um módulo (C#, C++, Visual Basic, F#)

Na janela Pilha de Chamadas, você pode carregar símbolos de depuração para o código que atualmente não tem símbolos carregados. Esses símbolos podem ser símbolos do .NET ou do sistema baixados dos servidores públicos de símbolo da Microsoft ou de símbolos em um caminho de símbolo no computador que você está depurando.

Confira Especificar arquivos de símbolo (.pdb) e de origem.

Para carregar símbolos

  1. Na janela Pilha de Chamadas, clique com o botão direito do mouse no registro de ativação para o qual os símbolos não foram carregados. O quadro ficará menos iluminado.

  2. Aponte para Carregar Símbolos e selecione Servidores de Símbolos da Microsoft (se disponíveis) ou navegue até o caminho do símbolo.

Para definir o caminho do símbolo

  1. Na janela Pilha de Chamadas, escolha Configurações de Símbolo no menu de atalho.

    A caixa de diálogo Opções é aberta e a página Símbolos é exibida.

  2. Selecione Configurações de Símbolo.

  3. Na caixa de diálogo Opções, clique no ícone Pasta.

    Na caixa Locais do arquivo de símbolo (.pdb), um cursor será exibido.

  4. Digite um nome de caminho de diretório no local do símbolo no computador que você está depurando. Para depuração local e remota, esse é um caminho no computador local.

  5. Selecione OK para fechar a caixa de diálogo Opções.