2010-03-15 8 views
5

Mi IDE principal es Visual Studio 2005 y tengo un gran proyecto de C/C++. Me interesan las herramientas de análisis de subprocesos que se recomiendan. Con eso quiero decir, quiero una herramienta, estática o dinámica, para ayudar a encontrar condiciones de carrera, puntos muertos, y cosas por el estilo.¿Qué herramientas de análisis de roscado recomiendan?

Hasta ahora he investigado casualmente lo siguiente: 1. Intel Thread Checker: ¿No creo que esté relacionado con VS 2005? 2. Valgrind/Helgrind: gratis. 3. Coverity: esta es una herramienta costosa si entiendo correctamente.

¿Alguien tiene experiencia con alguno de estos u otros? Apreciaría mucho cualquier consejo. Gracias.

+0

¿A qué sistemas operativos va a depurar su software o tener acceso? –

+0

windows xp. y en menor medida, linux. – glutz78

Respuesta

2

El nuevo 'Concurrency Visualizer' en Visual Studio 2010 creo que es una gran herramienta para el análisis de subprocesos.

+1

no ayudará en VS2005 aunque .... –

1

¿Has mirado en CHESS:?

El ajedrez es una herramienta para encontrar y reproducir heisenbug en programas concurrentes. CHESS ejecuta repetidamente una prueba concurrente asegurando que cada ejecución tome un entrelazado diferente. Si un entrelazado genera un error, AJEDREZ puede reproducir el entrelazado para una depuración mejorada. CHESS es disponible para programas administrados y nativos.

+0

El enlace está roto. –

+0

Enlace correcto, http://research.microsoft.com/en-us/projects/chess/ –

1

Intel VTune Thread Profiler es muy agradable.

0

valgrind/racegrind sólo funcionan en Linux (Helgrind consiguió retiró). pero es v bueno y es libre

coverity es genial pero caro - No sé si es algo de simultaneidad. Lo ejecutamos en una gran base de código altamente enhebrada y nunca capta la simultaneidad. Ahora podría ser porque nuestro código es perfecto (ha, solo), es más probable porque no lo está buscando. Pero voy a repetir que es un gran analizador estático

1

Estoy trabajando en una aplicación muy enhebrada que se escribió originalmente utilizando el hilo de Windows y las bibliotecas de sincronización. Lo porté a Linux/pthreads y valgrind demostró ser inmediatamente invaluable en la detección y reparación de varias fugas de memoria.

Estoy en el proceso de usar DRD & el resto de la suite valgrind, hasta ahora ha sido increíble. Fue muy fácil de usar prácticamente sin curva de aprendizaje. Desafortunadamente, esto solo lo ayuda si su software se ejecuta en Linux.

Cuestiones relacionadas