¿Hay alguna herramienta que pueda ayudarlo a encontrar condiciones de carrera al probar el código .net de subprocesos múltiples? Estoy buscando algo con capacidades similares a la herramienta ConTest de IBM para Java.¿Qué herramientas existen para probar el código .net multiproceso?
Respuesta
Typemock Racer podría ser lo que estás buscando pero no lo han utilizado - Acabo de recordar algo acerca de los puntos muertos :)
O esto: Deadlock Detector
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.
La herramienta de Microsoft no está disponible todavía (y puede que sea por algún tiempo). –
Está disponible ahora, pero no para VS2010 o VS2012 todavía. – Henrik
¿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
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.
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
- 1. ¿Qué herramientas CLR/.NET bytecode existen?
- 2. Qué herramientas de autotest existen para Clojure
- 3. ¿Qué herramientas XSLT 2.0 existen?
- 4. Directrices para probar el código multiproceso o asegurarse de que el código sea seguro para subprocesos
- 5. Herramientas para visualizar el grafo de llamada de aplicación C++ multiproceso, cobertura de código multiproceso?
- 6. ¿Qué herramientas de edición T4 existen?
- 7. ¿Existen herramientas de combinación para el control de código fuente que entienden el código?
- 8. ¿Qué herramientas existen para convertir una aplicación Delphi 7 en C# y .Net framework?
- 9. ¿Qué herramientas gratuitas de formato SQL existen?
- 10. ¿Qué otras herramientas de analítica web existen?
- 11. ¿Existen herramientas visuales para MongoDB (para Windows)?
- 12. ¿Qué herramientas de refactorización usas para .NET?
- 13. ¿Existen herramientas/bibliotecas (.Net/WPF) para medir y almacenar datos de navegación UI para el análisis?
- 14. ¿Qué métodos existen para modularizar el código C?
- 15. ¿Qué herramientas y técnicas usas para encontrar el código muerto?
- 16. herramientas esenciales para el programador .net?
- 17. Dibujo multiproceso en .NET?
- 18. Herramientas de análisis de código estático de TeamCity para .NET
- 19. ¿Qué herramientas usas para probar tu API REST pública?
- 20. ¿Existen herramientas para refactorizar el estilo de codificación de una base de código Java?
- 21. Problemas de cola .NET multiproceso
- 22. ¿Qué herramientas usas para el análisis de código estático?
- 23. Qué herramientas de C# existen para desencadenar, poner en cola, priorizar tareas dependientes
- 24. Existen herramientas de eliminación de simultaneidad para C# .NET en VS2010
- 25. Herramientas para el código C refactorización
- 26. ¿Qué cadenas de herramientas existen para la integración continua con C++?
- 27. ¿Existen herramientas programáticas para la conversión de Perl a Python?
- 28. ¿Qué cadenas de herramientas alternativas (de trabajo) existen para el desarrollo x86 C++ en Linux?
- 29. ¿Existen útiles herramientas de análisis estático para bases de datos?
- 30. ¿Existen herramientas/técnicas para depurar manejadores de eventos jQuery?
Ambos enlaces rotos – Henrik