22/8/2009 17:04
El Bruno
[VSTS2010] Nuevas herramientas para la depuración de aplicaciones MultiThreading y otras yerbas

Buenas,
aquellos que alguna vez hayan tenido que desarrollar aplicaciones multithreading seguramente coincidirán que la tecnología es peligrosa muy potente, pero el IDE de Visual Studio 2008 era un poco pobre para la depuración de estas aplicaciones.
Disclaimer: no quiero animar a nadie a empezar a crear miles de threads a cascoporro con 2 líneas de código, siempre he opinado que la decisión de utiilzar threads para gestionar algo en una aplicación debe ser una de las últimas opciones. Este tipo de soluciones, sino están bien implementadas suelen traer más problemas que beneficios.
Desde hace un tiempo sigo en el blog de The Moth (Daniel Moth) una serie de artículos muy interesantes sobre este tema. Y una de las cosas que más me ha llamado la atención son 2 nuevos paneles en el IDE de Visual Studio que nos ayudan en la depuración en estos escenarios: Parallel Tasks y Parallel Stacks.
Partiendo de un ejemplo de Daniel y deteniendo una aplicación en tiempo de ejecución, podemos ver que ambos paneles muestran información más que interesante.
En la ventana Parallel Tasks es posible visualizar las tareas en ejecución, las tareas programadas, y las tareas que están en espera de ser reactivadas.
Además para cada elemento podemos congelar una tarea, cambiar el contexto a la misma o congelar todas las tareas menos una en particular.
En la ventana Parallel Stacks, es posible ver de forma gráfica los threads en ejecución y la relación entre los mismos (lo que conocemos como Call Stack, pero de forma gráfica). Además aprovechando la potencia de WPF, podemos gestionar el zoom en este diagrama para ver en mayor o menor detalle, el panorama global de ejecución.
Todavía no me alcanzan las palabras para describir lo importante que puede ser esto en depuraciones realmente complejas. Y si bien no funciona con el Historical Debugging (es mucho pedir ya lo sé, pero pedir es gratis) creo que puede ser de gran ayuda para estabilizar esas aplicaciones un poco raras que andan dando vueltas por alli y para terminar de comprender como funcionan estas aplicaciones.
Saludos @ Rio IV
El Bruno
Archivado en: Visual Studio Team System,VSTS,Visual Studio 2010
Comparte este post: