Em uma sessão de depuração, você pode ver a pilha de chamadas do thread atual na janela Depuração (aberta automaticamente sempre que você inicia uma sessão de depuração). Se expandir o nó do thread atual, você pode ver uma lista da seqüência de chamadas feitas durante a execução do thread.
As informações fornecidas a cada chamada incluem o nome da chamada (marcadas por um ícone ) inclui o nome da chamada, seguido do nome de arquivo e do número da linha da instrução atualmente em execução da chamada. Se os códigos-fonte estiverem disponíveis, você pode clicar com o botão direito do mouse na pilha e escolher Ir para código-fonte a fim de ir para o código-fonte da chamada.
Como alternativa, você pode abrir a janela Pilha de chamadas, escolhendo Janela > Depuração > Pilha de chamadas (Alt -Shift-3).
A chamada atual (indicada em negrito) é a chamada mais recente feita pelo thread atual. Quando você seleciona um thread diferente, a janela é atualizada para mostrar as chamadas desse thread. A janela Variáveis locais também é atualizada para exibir os valores de variáveis da chamada atual.
Para navegar a pilha de chamadas, adote um dos seguintes procedimentos:
Você pode capturar uma representação textual da pilha de chamadas, clicando com o botão direito do mouse em uma chamada e escolhendo Copiar pilha no menu pop-up. Quando você copia a pilha de chamadas, o texto é copiado para a área de transferência. Você pode colar a pilha de chamadas em um arquivo de texto.
Você pode alterar a execução do programa, para que a próxima instrução a ser executada seja uma das chamadas feitas antes na pilha. Em geral, tirar, ou remover, uma chamada da pilha de chamadas não desfaz os efeitos que a chamada causou. Por exemplo, se uma chamada abriu uma conexão de banco de dados e depois essa chamada foi removida, a conexão do banco de dados permanecerá aberta.
Para remover a chamada mais recente da pilha de chamadas:
A chamada é removida da pilha de chamadas. O contador do programa é movido para a linha antes da instrução que fez a chamada removida. Se o código-fonte estiver disponível, o foco do Editor de código-fonte será definido para essa linha. Quando você continuar a execução do programa, a chamada será repetida.
Para remover múltiplas chamadas da pilha de chamadas;
Todas as chamadas acima da chamada selecionada serão removidas da pilha de chamadas. O contador do programa é movido para a linha antes da instrução que fez a chamada removida. Se o código-fonte estiver disponível, o contador do programa se move para essa linha. Quando você continuar a execução do programa, a chamada será repetida.