Partilhar via


Visualize a pilha de chamadas e use a janela Pilha de chamadas no depurador

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

Quando símbolos de depuração não estão disponíveis para parte de uma pilha de chamadas, a janela da pilha de chamadas pode não ser capaz de exibir informações corretas para essa parte da pilha de chamadas, exibindo em vez disso:

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

Observação

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 as suas definições, selecione Import and Export Settings no menu Ferramentas. Consulte Redefinir todas as configurações. A janela Call Stack é semelhante à perspetiva Debug em alguns IDEs como o Eclipse.

Visualizar a pilha de chamadas enquanto estiver no depurador

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

Captura de tela mostrando a janela da pilha de chamadas. Uma seta identifica o quadro de pilha onde está atualmente localizado o ponteiro de execução. Por padrão, as informações deste quadro de pilha aparecem nas janelas de origem, Locais , Autos , Watch e Desmontagem . Para mudar o contexto do depurador para uma outra estrutura na pilha, mude para outro nível de pilha.

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

Mostrar código não-usuário na janela Pilha de Chamadas

Para exibir código externo ou não de 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 na janela Pilha de chamadas e selecione Mostrar código externo.

Código de não-usuário é qualquer código que não é mostrado quando Just My Code está habilitado. No código gerenciado, os quadros de código que não são de usuário ficam ocultos por padrão. A seguinte notação aparece no lugar dos quadros de código não-usuário:

[<External Code>]

Alternar para outro frame de pilha (alterar o contexto do depurador)

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

    Ou, você pode clicar duas vezes em um quadro na janela da pilha de chamadas para alternar para esse quadro.

  2. Selecione Alternar para o quadro.

    Uma seta verde com uma cauda encaracolada aparece ao lado do quadro de pilha selecionado. O ponteiro de execução permanece no quadro original, que ainda está marcado com a seta amarela. Se selecionar Etapa ou Continuar no menu Depuração, a execução ocorrerá no frame original, não no frame selecionado.

Alterne o botão Ver todos os tópicos para ver todos os tópicos relacionados na janela Pilha Paralela . A janela Pilhas Paralelas fornece visualizações dos stacks 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 frames pertinentes da pilha de chamadas serão destacados.

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

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

Executar para uma função específica a partir da janela de Call Stack

Na janela Pilha de Chamadas, selecione a função, clique com o botão direito e escolha Executar até ao Cursor.

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

Consulte para definir um ponto de interrupção numa função na stack de chamadas.

Exibir chamadas de ou para outro thread

Clique com o botão direito do mouse na janela da pilha de chamadas e selecione Incluir chamadas de/para 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 Call Stack, abra o menu de atalho. Escolha Mostrar pilha de chamadas no mapa de código (Ctrl + Shift + `).

Para obter mais informações, consulte métodos Map na pilha de chamadas ao depurar.

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 Call Stack, clique com o botão direito do rato na função cuja desassemblagem deseja ver e selecione Ir para Desassemblagem.

Alterar as informações opcionais exibidas

Clique com o botão direito do rato na janela Pilha de Chamadas e ative ou desative a opção de Mostrar <as informações que pretende>.

Autodecompilar código externo .NET

A partir do Visual Studio 2022 versão 17.7, pode-se autodescompilar o código .NET ao clicar duas vezes em código externo na janela de Pilha de Chamadas. Para obter mais informações, consulte Gerar código-fonte de assemblies .NET ao depurar.

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

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

Consulte Especificar símbolo (.pdb) e ficheiros de origem.

Para carregar símbolos

  1. Na janela da pilha de chamadas , clique com o botão direito no quadro da pilha para o qual os símbolos não são carregados. O quadro ficará esmaecido.

  2. Aponte para Carregar Símbolos e, em seguida, selecione Microsoft Symbol Servers (se disponível) ou procure o caminho dos símbolos.

Para definir o caminho do símbolo

  1. Na janela da 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 de Símbolos é exibida.

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

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

    Na caixa de Localizações do ficheiro de símbolos (.pdb), é apresentado um cursor.

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

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