Partilhar via


Mapear dependências específicas em mapas de códigos

Quando você quiser entender as dependências específicas no seu código, visualize-os com a criação de mapas de código (Visual Studio Ultimate somente). Você pode navegar nessas relações usando o mapa, que é exibido ao lado de seu código. Isso ajuda a rastrear o local no código enquanto trabalha.

Mapa de códigos - relações de mapa no código

Uma seta verde mostra onde o cursor é exibido no editor. É possível fazer anotações em um mapa, assim como no papel.

Os mapas de código ajudam a evitar que você se perca em meio a grandes bases de código, códigos desconhecidos ou códigos herdados. Por exemplo, no momento da depuração, você talvez precise observar o código em vários arquivos e projetos. Os mapas de código ajudam a navegar nessas partes de código e ver as relações entre eles. Você não precisa se lembrar de todo esse código, acompanhar os arquivos ou desenhar um diagrama em papel separado. Se você precisar interromper o trabalho, os mapas de código ajudarão a atualizar a memória sobre o código em que você está trabalhando.

Criar ou abrir um mapa de código

Para criar um mapa de código que você precisa Visual Studio Ultimate 2013 e uma solução que tem o Visual c# .NET, Visual Basic .NET, X + + para Microsoft Dynamics AX ou código C++ (suporte limitado). Para obter as relações com codificação de cores, você precisará da Atualização 3 do Visual Studio 2013. Para mapear o código X + + e o código que é compartilhado entre vários aplicativos, você precisará Visual Studio 2013 atualização 2 ou posterior.

Você pode criar um mapa de código por:

  • Clicando com o botão um item como um arquivo de origem ou de um arquivo binário no Solution Explorer e selecionando Mostrar no mapa de códigos. Isso cria um mapa de código para o item selecionado.

  • Arrastar um item como um arquivo de origem ou de um arquivo binário no Gerenciador de soluções em um mapa de código aberto para incluir e/ou realçar o item no mapa.

  • Mouse em uma área vazia da janela do editor e selecionando Mostrar no mapa de códigos. Isso cria um novo mapa de código vazio.

  • Clicando duas vezes um objeto ou classe na janela do editor e selecionando Mostrar no mapa de códigos. Isso cria um mapa de código para o item selecionado. Você também pode localizar todas as referências ou Mostrar itens relacionados em um mapa de código usando esse menu.

  • Clicar a mapa de código botão o Depurar menu quando o aplicativo está em pausa.

  • De um arquivo aberto do IntelliTrace ou como um gráfico de dependência de arquitetura menu.

Você pode Exibir, fazer edições limitadas, e navegar usando os mapas de código Visual Studio Premium 2013 ou Visual Studio Professional 2013.

Antes de compartilhar mapas com outras pessoas que usam Premium ou Professional, certifique-se de que todos os itens no mapa são visíveis, como itens ocultos, grupos expandidos e links de grupo cruzado.

Veja os mapas de código em ação: Entendendo o código complexo com o mapa de códigos (Canal 9)

Compreender o problema

Suponhamos que haja um bug em um programa de desenho no qual você está trabalhando. Para reproduzir o bug, abra a solução no Visual Studio Ultimate e pressione F5 para iniciar a depuração.

Quando você desenha uma linha e escolhe Desfazer meu último traço, nada acontece até você desenhar a próxima linha.

Mapa de códigos - erro de reprodução

Assim, você começa a investigação procurando o método Undo. Você o encontra na classe PaintCanvas.

Mapa de códigos - código de localização

Começar a mapear o código

Agora você começa a mapear o método undo e suas relações. No editor de códigos, você adiciona o método undo e os campos aos quais faz referência a um novo mapa de códigos. Quando você cria um novo mapa, ele pode demorar algum tempo para indexar o código. Isso ajuda a executar mais rapidamente as operações posteriores.

Mapa de códigos - método Show e campos relacionados

Dica

O realce verde mostra os últimos itens que foram adicionados ao mapa.A seta verde mostra a posição do cursor no código.As setas entre os itens representam relações diferentes.É possível obter mais informações sobre itens no mapa examinando-se suas dicas de ferramenta.

Mapa de códigos - Mostrar dicas de ferramentas

Para ver a definição de código para cada campo, clique duas vezes no campo no mapa ou escolha o campo e pressione F12. A seta verde alterna itens no mapa. O cursor no editor de códigos também se move automaticamente.

Mapa de código – Examine a definição de campo

Mapa de código – Examine a definição de campo

Dica

Também é possível mover a seta verde no mapa movendo-se o cursor no editor de códigos.

Compreender as relações entre as partes do código

Agora você deseja saber qual o outro código interage com os campos history e paintObjects. É possível adicionar todos os métodos que referenciam esses campos no mapa. É possível fazer isso com base no mapa ou no código.

Mapa de código – localizar todas as referências

Altere o layout para reorganizar o fluxo de relações e para facilitar a leitura do mapa. Também é possível mover itens pelo mapa arrastando-os.

Mapa de códigos - altere o layout

Dica

Por padrão, o Layout Incremental permanece ativado.Isso reorganiza o mapa o menos possível quando você adiciona novos itens.Para reorganizar o mapa inteiro sempre que você adicionar novos itens, desative Layout Incremental.

Mapa de códigos - altere o layout

Vamos examinar esses métodos. No mapa, clique duas vezes no método PaintCanvas ou escolha esse método e pressione F12. Você aprende que esse método cria history e paintObjects como listas vazias.

Mapa de código – Examine a definição de método

Agora repita as mesmas etapas para examinar a definição do método clear. Você aprende que clear realiza algumas tarefas com paintObjects e history. Em seguida, ele chama o método Repaint.

Mapa de código – Examine a definição de método

Agora examine a definição do método addPaintObject. Ele também realiza algumas tarefas com history e paintObjects. Ele também chama Repaint.

Mapa de código – Examine a definição de método

Encontre o problema examinando o mapa

Aparentemente, todos os métodos que modificam history e paintObjects chamam Repaint. Ainda assim, o método undo não chama Repaint, mesmo que undo modifique os mesmos campos. Então você acha que é possível corrigir esse problema chamando Repaint em undo.

Mapa de códigos - encontre ausente chamada de método

Se você não tivesse um mapa para mostrar essa chamada perdida, poderia ser bem mais difícil encontrar esse problema, especialmente com um código mais complexo.

Compartilhar a descoberta e as próximas etapas

Antes de você ou alguma outra pessoa corrigir esse bug, é possível fazer anotações no mapa sobre o problema e como corrigi-lo.

Itens de mapa de códigos - comentário e o sinalizador para acompanhamento

Por exemplo, é possível adicionar comentários ao mapa e sinalizar itens usando cores.

Mapa de códigos - itens comentados e sinalizadores

Se tiver o Microsoft Outlook instalado, você poderá enviar por email o mapa para outras pessoas. Também é possível exportar o mapa como uma imagem ou em outro formato.

Exportação de mapa - compartilhamento de código, email

Corrigir o problema e mostrar o que você fez

Para corrigir esse bug, adicione a chamada de Repaint ao undo.

Mapa de código - adicionar a chamada de método ausente

Para confirmar a correção, reinicie a sessão de depuração e tente reproduzir o erro. Agora escolher Desfazer meu último traço funciona conforme esperado e confirma que você fez a correção certa.

Mapa de código - confirmar a correção do código

É possível atualizar o mapa para mostrar a correção feita.

Mapa de códigos - mapa de atualização com ausência de chamada de método

O mapa agora mostra um link entre desfazer e Redesenhar.

Mapa de códigos - mapa atualizado com a chamada de método

Dica

Ao atualizar o mapa, você talvez veja uma mensagem afirmando que o índice de código usado para criar o mapa foi atualizado.Isso significa que alguém alterou o código, o que faz o mapa não corresponder ao código atual.Isso não impede você de atualizar o mapa, mas talvez precise recriar o mapa para confirmar se ele corresponde ao código.

Agora você terminou a investigação. Você encontrou e corrigiu o problema com êxito mapeando o código. Você também tem um mapa que ajuda a navegar no código, lembrar o que aprendeu e mostra as etapas que você seguiu para corrigir o problema.

Consulte também

Conceitos

Mapear métodos na pilha de chamadas ao depurar no Visual Studio

Visualizar código