Ferramentas de Usuário

Ferramentas de Site


dev_net:vb.net:debuggerhidden

Esconder métodos do depurador

Introdução

Os momentos de depuração são a fase que mais tempo consome aos programadores. Todos os pequenos atalhos que se possam tomar, todos os segundos que se consigam poupar nesta fase significa sempre uma diminuição de tempo até ao "release" do que estamos a produzir ou até mesmo reduzir o tempo de manutenção. Na maioria dos casos em que o problema não é imediatamente reconhecido, recorre-se à depuração passo-a-passo onde cada linha de código é executada à nossa ordem e o fluxo da aplicação passa-nos à frente dos olhos. Com isto, imaginemos que temos um método com 100 linhas de código que tem sido utilizado hà anos e que temos a certeza que não é a fonte do problema. Cada vez que o depurador entrasse nesse método estariamos a correr 100 linhas que à partida não têm qualquer problema.

Soluções

Os IDE (Integrated Development Environment), como o Visual Studio, têm vindo a integrar uma série de facilidades e atalhos para este tipo de problemas na depuração. Atalhos tais como o "Step Over" ou o "Step Out". Mesmo com estes, é o utilizador que tem de se aperceber que está no tal método garantido com 100 linhas. E se existisse uma maneira de indicar ao depurador para nem sequer olhar para aquele método? Existe. Chama-se atributo DebuggerHidden.

DebuggerHidden ou "Escondido do depurador" é um atributo que se associa a um método e que indica ao depurador para ignorar completamente todo o código nele contido.

Da teoria à prática

Public Class Form1
 
    <DebuggerHidden()> _
    Private Sub MetodoChatoCom100Linhas()
        Debug.WriteLine("O depurador não me vê!!")
    End Sub
 
    Private Sub MetodoQuePodeVirATerProblemas()
        Debug.WriteLine("O depurador está-me a ver!")
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MetodoChatoCom100Linhas()
        MetodoQuePodeVirATerProblemas()
    End Sub
End Class
Execute a aplicação com F11 ao invés do normal F5. Desta forma está a correr a aplicação passo-a-passo, onde poderá comprovar a eficácia do atributo DebuggerHidden. Para executar a linha marcada e proceder para a próxima, usamos o F8.
Também é possível esconder Get e Set de propriedades
dev_net/vb.net/debuggerhidden.txt · Última modificação em: 2018/05/14 21:37 (edição externa)