Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

18 años online

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
martes, 14 de junio de 2022
.NET

Visual Studio sigue introduciendo novedades versión tras versión, y es fácil que algunas de ellas nos pasen desapercibidas y tardemos algún tiempo en conocerlas, o incluso en verles la utilidad. Un ejemplo lo tenemos en los breakpoints temporales y dependientes, dos nuevos tipos de puntos de interrupción añadidos en la versión 2022 que pueden venirnos bien a la hora de depurar aplicaciones.

En este post vamos a echarles un vistazo, por si hay algún despistado más que no se haya dado cuenta de estas novedades.

1. Breakpoint temporal

Como su nombre indica, este nuevo tipo de punto de interrupción permite establecer paradas en la ejecución temporales, que sólo se aplicarán una vez. O en otras palabras, cuando la ejecución pase por el breakpoint, la ejecución se detendrá, pero al mismo tiempo éste será eliminado para evitar futuras paradas.

Esto puede ser útil en muchos escenarios, como cuando depuramos código que usan múltiples hilos o que usen concurrencia y no queremos que la ejecución vaya parándose cada vez, o simplemente para saber que el flujo de ejecución pasó por un punto determinado.

Para insertar un breakpoint de este tipo, basta con usar el menú contextual sobre la línea en la que queremos establecer la parada, y seleccionar la opción del menú apropiada "Insert Temporary Breakpoint":

Menú contextual para la inserción de breakpoints, mostrando la opción Insert Temporary Breakpoint

El carácter temporal de un punto de interrupción también se puede establecer en sus settings, marcando la casilla "Remove breakpoint once hit". Esto permite combinarlo con otras condiciones, como en la siguiente captura de pantalla:

Settings de un breakpoint donde se establece como temporal y al mismo tiempo se le definen condiciones adicionales

2. Breakpoint dependiente

Hace tiempo tenemos disponibles los conditional breakpoints, aquellos en los que es posible introducir una condición que, en caso de evaluarse como cierta, interrumpirá la ejecución. Esta condición puede ser una expresión de código (por ejemplo, i == 4) u otras más contextuales, como el número de veces que la ejecución ha pasado por el punto.

Pues bien, los puntos de interrupción dependientes añaden un nuevo tipo de condición: son habilitados exclusivamente cuando el breakpoint del que dependen haya saltado anteriormente. Es decir, podrían ser una forma sencilla de expresar "párate aquí si antes te has parado allí".

Como en el caso anterior, estos breakpoints pueden crearse desde el menú contextual, o bien editando las propiedades de un punto de interrupción existente. En ambos casos será necesario especificar el breakpoint que deberá haber parado antes la ejecución para que ahora se detenga en el punto especificado seleccionándolo en un desplegable:

Breakpoint configurado para detenerse cuando un breakpoint anterior haya provocado antes

¡Espero que os resulte útil!

Publicado en Variable not found.

Aún no hay comentarios, ¡sé el primero!