2008-10-14 9 views

Respuesta

2

Este announcement de Microsoft Research suena como que tienen una herramienta que hace exactamente lo que quiero. Lamentablemente, aún no hay una versión .net, pero hay una planeada. Para citar el sitio:

El ajedrez es una herramienta automatizada para encontrar errores en el software multiproceso exploración sistemática de rosca horarios. Encuentra errores, como data-races, deadlocks, cuelga, y violaciones de acceso a datos inducidas violaciones, que son extremadamente difíciles de encontrar con las herramientas de prueba actuales . Una vez que CHESS localiza un error, proporciona una ejecución totalmente repetible de del programa que conduce al error, por lo tanto, facilitando enormemente el proceso de depuración. Además, CHESS proporciona una valiosa y una novedosa noción de cobertura de prueba adecuada para programas multiproceso. CHESS puede usar casos de prueba concurrente existentes y, por lo tanto, es fácil de implementar. Tanto los desarrolladores como los probadores deberían saber que CHESS es útil.

+0

La herramienta de Microsoft no está disponible todavía (y puede que sea por algún tiempo). –

+0

Está disponible ahora, pero no para VS2010 o VS2012 todavía. – Henrik

1

¿Has visto Debug Inspector (www.debuginspector.com)?

No administrado y callejones sin salida no administrados y cubre tanto WaitForSingleObject y WaitForMultipleObjects y trabaja para XP y Vista

1

Hay una gran extensión windbg, escrito por Steve Johnson, llamado sosex que tiene una orden de búsqueda de punto muerto. Puede encontrarlo en y puede leer más sobre él aquí: http://www.stevestechspot.com/SOSEXANewDebuggingExtensionForManagedCode.aspx y aquí: http://www.stevestechspot.com/SOSEXUpdatedV11Available.aspx.

+0

Simplemente encuentra deadlocks en tiempo de ejecución que son fáciles de encontrar de todos modos; porque si tienes uno, tu programa se detiene por completo y solo echas un vistazo a todos los stacks. – Henrik

Cuestiones relacionadas