Este
é o vigésimo primeiro post de uma série de posts que estou escrevendo
sobre o próximo lançamento do VS 2010 e .NET 4. O post de hoje mostra um pouco das boas melhorias de usabilidade que chegam com o
debugger (depurador de código) do VS 2010.
O depurador de código do VS
2010 tem várias novas capacidades. Recursos como IntelliTrace (também
conhecido como histórico de depuração), novas capacidades para depuração de código paralelo/multithread (em Inglês) e suporte para depuração de dumps (em Inglês)
geralmente obtêm muita atenção (bem merecida) quando as pessoas falam
sobre as melhorias de depuração de código desta nova versão do VS. Eu
escreverei mais posts no futuro que demonstram como tirar proveito
destes novos recursos também.
Com o post de hoje, eu pensei em
começar cobrindo um número pequeno, mas agradável, das melhorias de
usabilidade do depurador de código que também foram incluídas com o
lançamento do VS 2010, as quais penso que você achará úteis.
Labels (etiquetas) para Breakpoints
O VS 2010 inclui novo suporte para uma melhor gestão de breakpoints (pontos de interrupção) do depurador. Uma
característica particularmente útil é chamada de "Breakpoint Labels" -
que permite um agrupamento e filtragem de breakpoints muito melhor
dentro de um projeto ou em toda solução.
Com versões anteriores do Visual Studio você tinha que gerenciar cada breakpoint como um item separado. Gerenciar
cada breakpoint separadamente pode ser um sofrimento em grandes
projetos e para os casos em que você deseja manter "grupos lógicos" de breakpoints que você pode ativar/desativar dependendo do que você
está depurando. Usando o novo
recurso "breakpoint labeling" (rotulagem de breakpoints) você pode agora
nomear estes "grupos" de breakpoints e gerenciá-los como uma unidade.
Agrupando Múltiplos Breakpoints usando um Label (Etiqueta)
A seguir está uma captura de tela da janela de breakpoints dentro do Visual Studio 2010. Esta
janela lista todos os breakpoints definidos dentro da minha solução
(que neste caso é uma base de código de um projeto ASP.NET MVC 2):
O
primeiro e o último breakpoint nesta lista acima, pára o depurador
quando uma instância do controlador é criada ou liberada pelo framework
da ASP.NET MVC.
Usando
o VS 2010, eu posso agora selecionar esses dois breakpoints, clicar com
o botão direito do mouse e selecionar o novo comando do menu "Edit
labels..." (Editar labels...) para dar um nome comum aos dois (tornando
mais fácil encontrá-los e gerenciá-los):
A seguir está a caixa de diálogo que aparece quando eu seleciono o comando "Editar labels". Podemos
usar esta janela para criar um novo label para nossos breakpoints ou
selecionar um label existente que já tenhamos definido. Neste caso, vamos criar um novo label chamado "Lifetime Management" (Gerenciamento do Tempo de Vida) para descrever o que esses dois breakpoints cobrem:
Quando
pressionamos o botão OK nossos dois breakpoints selecionados serão
agrupados sob o recém-criado label "Lifetime Management":
Filtrando/Ordenando Breakpoints por Label
Podemos
usar a combobox "Search" (Pesquisar) para filtrar/ordenar rapidamente
os breakpoints por label. A seguir, estamos mostrando apenas os
breakpoints que foram etiquetados/marcados com "Lifetime Management":
Ativando/Desativando Breakpoints por Label
Também
podemos ativar ou desativar conjuntos de breakpoints através de um
label. Nós podemos simplesmente filtrar pelo label, executar um Ctrl+A
para selecionar todos os breakpoints, e, em seguida, ativar/desativar
todos eles com um único clique:
Importando/Exportando Breakpoints
O
VS 2010 agora suporta importação/exportação de breakpoints para
arquivos XML - os quais você pode então passar para outro desenvolvedor,
anexar em um relatório de erros, ou simplesmente recarregá-los mais
tarde.
Para exportar apenas um subconjunto de breakpoints, você
pode filtrar por um label em particular e, em seguida, clicar no botão
"Export breakpoint" (Exportar breakpoint) na janela de Breakpoints:
Acima
eu filtrei minha lista de breakpoints para exportar apenas dois
breakpoints em particular (específicos para um bug que estou
rastreando). Eu posso exportar esses breakpoints para um arquivo XML e,
em seguida, anexá-lo em um relatório de bugs ou enviá-los por e-mail - o
que permitirá que outros desenvolvedores facilmente configurem o
depurador de código no estado correto para investigar o bug em uma
máquina separada.
DataTips Fixadas na Tela
O Visual
Studio 2010 também inclui alguns recursos legais como "DataTip pining"
(Fixação de DataTips) que permite que você veja e monitore de uma
maneira melhor os valores das variáveis e de expressões quando estiver
depurando código.
Basta passar o mouse sobre uma variável ou
expressão dentro do depurador para expor sua DataTip (que é uma
descrição que mostra o valor da variável ou expressão) - e, em seguida, clicar no novo botão
"pin" (alfinete) para manter a DataTip sempre visível:
Você
pode "fixar" quantas DataTips você quiser na tela. Além de fixar
variáveis de alto nível, você pode navegar até sub-propriedades de
variáveis e fixá-las também.
A seguir eu "fixei" três
variáveis: "category", "Request.RawUrl" e
"Request.LogonUserIdentity.Name". Note que estas duas últimas variáveis
são sub-propriedades do objeto "Request".
Associando Comentários com DataTips Fixadas
Ao passar o mouse sobre uma DataTip fixada na tela, é exposta uma UI (interface do usuário) adicional dentro do depurador:
Clicando
no botão de comentário no final desta UI expande a DataTip - e te
permite, opcionalmente, adicionar um comentário nesta DataTip:
Isto torna muito fácil adicionar e controlar notas de depuração:
DataTips Fixadas são usáveis em Sessões de Depuração e Sessões do Visual Studio
DataTips
fixadas podem ser usadas em várias sessões do depurador. Isto
significa que se você parar o depurador, fizer uma alteração no código, e
então recompilar e iniciar uma nova sessão de depuração - quaisquer
DataTips fixadas na tela ainda estarão lá, junto com quaisquer
comentários que você associar a elas.
DataTips fixadas também
podem ser usadas em várias sessões do Visual Studio. Isto significa que
se você fechar o projeto, fechar o Visual Studio, e depois abrir o
projeto novamente - quaisquer DataTips fixadas ainda estarão lá, junto
com quaisquer comentários que você associar a elas.
Veja o Valor da Última Sessão de Depuração (Ótimo Recurso do Editor de Código)
Quantas vezes você já parou o depurador só para voltar ao seu código e dizer:
$#@! - Qual era mesmo o valor dessa variável??
Uma
das coisas legais sobre DataTips fixadas é que elas mantêm um controle
sobre seus "últimos valores a partir da sessão de depuração" - e você
pode olhar estes valores dentro do editor de código C#/VB mesmo quando o depurador não estiver sendo executado.
DataTips
são escondidas por padrão quando você está no editor de código e o
depurador não está sendo executado. Na margem esquerda do editor de
código, porém, você encontrará um alfinete para cada DataTip fixada que
você configurou previamente:
Passar
o mouse sobre uma DataTip fixada fará com que ela seja mostrada na
tela. A seguir você pode ver o que acontece quando eu passo o mouse
sobre o primeiro alfinete na margem esquerda do editor de código - ele
exibe os últimos valores da nossa sessão de depuração para a DataTip do
objeto "Request" junto com o comentário que associamos a ela:
Isso
torna muito mais fácil controlar o estado e condições das variáveis
enquanto você alterna entre o modo de edição de código e o modo de
depuração em seus projetos.
Importação/Exportação de DataTips Fixadas
Como
mencionei anteriormente neste post, DataTips fixadas são por padrão
salvas nas sessões do Visual Studio (você não precisa fazer nada para
habilitar isso).
O VS 2010, agora também suporta a
importação/exportação de DataTips fixadas para arquivos XML - que você
pode então passar para outros desenvolvedores, anexar em um relatório de
erros, ou simplesmente recarregar mais tarde.
Combinado
com o novo suporte para importação/exportação de breakpoints, isso
torna muito mais fácil compartilhar configurações de depuração entre
múltiplos desenvolvedores e coloborar em sessões de depuração.
Sumário
O Visual Studio 2010 inclui um conjunto de ótimos recursos para o depurador de código - grandes e pequenos recursos.
O
post de hoje compartilhou algumas das boas melhorias de usabilidade do
depurador. Todos os recursos acima são suportados no Visual Studio
Professional Edition 2010 (os recursos de DataTip fixada também são
suportados no Visual Studio 2010 Express Edition - que é gratuito)
Eu
estarei cobrindo alguns dos grandes e novos recursos de depuração, como
Intellitrace, depuração de código paralelo/multithread, e análise do
arquivo de dump (despejo) em posts futuros.
Espero que ajude,
Scott
P.S. Além do blog, eu também estou agora utilizando o Twitter para atualizações rápidas e para compartilhar links. Siga-me em: twitter.com/ScottGu
Texto traduzido do post original por
Leniel Macaferi.