2011-11-29 7 views
12

¿Existe un marco de prueba para C que fuerce las condiciones de carrera?¿Existe un marco de prueba para C que fuerce las condiciones de carrera?

O para C++ y Java, para el caso.

+0

¡Envíe un voto favorable a una gran pregunta! –

+2

[Corensic Jinx] (http://www.corensic.com/Products.aspx). No lo he usado y, por lo tanto, no puedo comentar sobre su utilidad o efectividad. –

+0

Una gran pregunta, pero en general las condiciones de carrera de grano más fino son demasiado difíciles de alcanzar para que una herramienta general lo haga bien. Por ejemplo, glibc/NPTL tiene algunas condiciones desagradables de carrera que han sido reportadas e ignoradas, lo que probablemente tomaría decenas o cientos de años para golpear en una sola máquina. Por supuesto, probablemente ya se hayan visto muchas veces en los centros de datos de Google o Facebook ... –

Respuesta

7

La herramienta Valgrind Helgrind detecta (entre otras cosas) carreras de datos en programas C o C++ que utilizan pthreads.

+0

drd es otra herramienta para detectar razas de datos. – dbeer

+1

Gracias; también [ThreadSanitizer] (http://code.google.com/p/data-race-test/wiki/ThreadSanitizerVsOthers) – Roland

+0

Gracias por su respuesta. –

Cuestiones relacionadas