“Debugueando” Situaciones Complejas


Les dejo unos links hacia el blog de Tess Ferrandez, que en forma de juego, muestran como debuguear aplicaciones funcionando en entornos donde llevar o attachar un IDE es imposible. Plantea distintos escenarios, mostrando la mejor manera de debuguear los mismos.

Se basa en la generación de dumps (cuando la aplicación se cuelga o a demanda, en caso que se quiera analizar un problema de performance) y en el posterior análisis del mismo con windbg de forma de poder identificar las razones por las cuales una aplicación falla o tiene problemas. El mecanismo es similar a lo que hace Microsoft cuando se presenta un falla y nos pregunta si queremos que envíe el dump.


No tiene sentido entrar en el detalle de cómo se realiza (para eso pueden leer la info directamente del blog de Tess), pero si me gustaría agregar que este tipo de técnicas de debug generalmente no son explotadas (ni tenidas en cuenta) por el desarrollador promedio. No suele plantearse como una alternativa viable, a pesar de no ser tan complicado como se supone. Muchas veces se pierde el mismo o más tiempo imaginando posibles causas a un problema. En general se confía demasiado en logs de aplicación para intentar “adivinar” dónde ocurre un fallo, en qué parte ocurre el malvado “null reference exception” o quién no esta liberando algún recurso en tiempo y forma.

Me parece importante conocer este tipo de técnicas (también aplican al mundo linux desde ya) y utilizarlas al momento de encontarse con problemas en ambientes productivos o de dificil acceso, además es recomendable incorporar la generación de estos dumps frente a errores inesperados de forma de poder analizarlos y solucionarlos cuando ocurren en la PC de un cliente (o tester).


Una buena manera de mitigar el famoso: Works on my machine

LinksIntroducción al uso de dumps y .net debugging lab

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s