DEV Community

Felipe Marques
Felipe Marques

Posted on

3 2

Visual Studio breakpoint com condições

🇺🇸 English version

Essa é uma dica simple e rápida, talvez você já conheça, mas eu não conhecia, mesmo após 10 anos trabalhando diariamente com o visual studio e o C#.

Se você já teve que debugar um código que é executado várias vezes buscando avaliar o comportamento do seu código em apenas uma determinada condição, você já precisou de algo como um breakpoint com condições. E como o próprio nome diz, é esse recurso que o VS fornece para nós.

Para exemplificar, fiz um código simples que imprime 10 números aleatórios em um console.

Console.WriteLine("Begin");
var rnd = new Random();

for (int i = 1; i <= 10; i++)
{
    Console.WriteLine($"{i}: {rnd.Next(10)}");
}

Console.WriteLine("End");
Console.ReadLine();
Enter fullscreen mode Exit fullscreen mode

Se você colocar um breakpoint, como na imagem abaixo, o debug vai parar nele em todas as 10 execuções do loop.

Image description

Entretanto, você pode querer observar apenas o compotamento do loop quando a variável i==5, nesse caso, clique com o botão direito em cima do breakpoint e adicione uma condição.

Image description

As condições são informada como na linguagem e você pode qualquer variável disponível naquele escopo, nesse caso, estou usando a variável i.

Image description

Image description

Aqui tem um vídeo de exemplo do processo todo.

Espero que tenha gostado e se você não conhecia esse recurso, comenta aí.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay