Criar um mapa visual da pilha de chamadas durante a depuração (C#, Visual Basic, C++, JavaScript)

Crie um mapa de códigos para rastrear visualmente a pilha de chamadas durante a depuração. Você pode fazer anotações no mapa para acompanhar o que o código está fazendo, de modo a se concentrar na localização de bugs.

Para obter detalhes de comandos e ações que você pode usar com os mapas de códigos, confira Procurar e reorganizar mapas de códigos.

Importante

Você pode criar mapas de código somente na Edição do Visual Studio Enterprise.

Vejamos rapidamente um mapa de códigos:

Debugging with call stacks on code maps

Mapear a pilha de chamadas

  1. Em um projeto Visual Studio Enterprise C#, Visual Basic, C++ ou JavaScript, inicie a depuração selecionando Depurar>Iniciar Depuração ou pressionando F5.

  2. Depois que o aplicativo entrar no modo de interrupção ou você entrar em uma função, selecione Depurar>Mapa de Códigos ou pressione Ctrl+Shift+`.

    A pilha de chamadas atual aparece em laranja em um novo mapeamento de código:

    See call stack on code map

O mapa de códigos é atualizado automaticamente à medida que você continua a depuração. Alterar os itens de mapa ou o layout não afeta o código de forma alguma. Sinta-se à vontade para renomear, mover ou remover qualquer item no mapa.

Para obter mais informações sobre um item, passe o cursor do mouse sobre ele e examine a dica de ferramenta do item. Você também pode selecionar Legenda na barra de ferramentas para saber o que significa cada ícone.

Code Map Legend

Observação

A mensagem O diagrama pode estar baseado em uma versão mais antiga do código na parte superior do mapa de códigos significa que o código pode ter sido alterado após a última atualização do mapa. Por exemplo, uma chamada no mapa pode não existir mais no código. Feche a mensagem e tente recriar a solução antes de atualizar o mapa outra vez.

Mapear código externo

Por padrão, somente seu próprio código aparece no mapa. Para ver o código externo no mapa:

  • Clique com o botão direito do mouse na janela Pilha de Chamadas e selecione Mostrar Código Externo:

    Display external code using the Call Stack window

  • Outra opção é desmarcar Habilitar Apenas Meu Código nas Ferramentas do Visual Studio do Visual Studio (ou Depurar) >Opções>Depuração:

    Show external code using Options dialog

Controlar o layout do mapa

Alterar o layout do mapeamento não afeta o código de maneira alguma.

Para controlar o layout do mapa, selecione o menu Layout na barra de ferramentas do mapa.

No menu Layout, você pode:

  • Altere o layout padrão.
  • Pare de reorganizar o mapa automaticamente desmarcando Layout Automático ao Depurar.
  • Reorganize o mapa o mínimo possível ao adicionar itens. Para isso, desmarque Layout incremental.

Fazer anotações sobre o código

Você pode adicionar comentários para acompanhar o que está acontecendo no código.

Para adicionar um comentário, clique com o botão direito do mouse no mapa de códigos e selecione Editar>Novo Comentário e digite o comentário.

Para adicionar uma nova linha em um comentário, pressione Shift+Enter.

Add comment to call stack on code map

Atualizar o mapa com a próxima pilha de chamadas

Conforme você executa seu aplicativo para o próximo ponto de interrupção ou entra em uma função, o mapa adiciona novas pilhas de chamadas automaticamente.

Update code map with next call stack

Para impedir que o mapa adicione novas pilhas de chamadas automaticamente, selecione Show call stack on code map automatically na barra de ferramentas do mapa de códigos. O mapa continua realçando as pilhas de chamadas existentes. Para adicionar manualmente a pilha de chamadas atual ao mapa, pressione Ctrl+Shift+`.

Adicionar código relacionado ao mapa

Agora que você tem um mapa, no C# ou Visual Basic, você pode adicionar itens como campos, propriedades e outros métodos para acompanhar o que está acontecendo no código.

Para ir para a definição de um método no código, clique duas vezes no método no mapa ou selecione-o e pressione F12 ou clique com o botão direito do mouse nele e selecione Ir para Definição.

Go to code definition for a method on code map

Para adicionar itens que você deseja rastrear ao mapa, clique com o botão direito do mouse em um método e selecione os itens que você deseja rastrear. Os itens adicionados mais recentemente aparecem em verde.

Fields related to a method on call stack code map

Observação

Por padrão, adicionar itens ao mapa também adiciona os nós de grupo pai, como a classe, o namespace e o assembly. Você pode desativar e ativar esse recurso selecionando o botão Incluir Pais na barra de ferramentas do mapa de códigos ou pressionando Ctrl enquanto adiciona itens.

Show fields in a method on call stack code map

Continue criando o mapa para ver mais código.

See methods that use a field: call stack code map

Methods that use a field on call stack code map

Localizar bugs usando o mapa

Visualizar seu código pode ajudar a localizar bugs com mais rapidez. Por exemplo, suponha que você esteja investigando um bug em um aplicativo de desenho. Quando você desenha uma linha e tenta desfazê-la, nada acontece até que você desenhe outra linha.

Dessa forma, você define pontos de interrupção nos métodos clear, undo e Repaint, inicia a depuração e cria um mapa como este:

Add another call stack to code map

Você observará que todos os gestos do usuário no mapa chamam Repaint, exceto para undo. Isso pode explicar o motivo de undo não funcionar imediatamente.

Após corrigir o bug e continuar executando o aplicativo, o mapa adicionará a nova chamada de undo para Repaint:

Add new method call to call stack on code map

Compartilhar o mapa com outras pessoas

Você pode exportar um mapa, enviá-lo para outras pessoas com o Microsoft Outlook, salvá-lo em sua solução e fazer check-in dele no controle de versão.

Para compartilhar ou salvar o mapa, use Compartilhar na barra de ferramentas do mapa de códigos.

Share call stack code map with others