En primer lugar, utilizo la biblioteca pthread para escribir el programa C de subprocesos múltiples. Los hilos siempre cuelgan por sus mutexs esperadas. Cuando uso la utilidad strace para encontrar un hilo en el estado FUTEX_WAIT
, quiero saber qué hilo contiene ese mutex en ese momento. Pero no sé cómo podría hacerlo. ¿Hay alguna utilidad que pueda hacer eso?¿Es posible determinar el hilo que contiene un mutex?
Alguien me dijo que la máquina virtual Java es compatible con esto, por lo que quiero saber si Linux admite esta característica.
El registro de hecho es una herramienta bastante útil para la depuración. Gracias por tus sugerencias – terry
+1 ¿A quién no le gusta el registro? Se podría hacer sin cambios de código usando LD_PRELOAD (y algo de paciencia).Ajustar las funciones 'pthread_mutex_ *' con algo que registra las llamadas de función, la dirección mutex 'y un identificador de subproceso ('pthread_t' pasa a ser un tipo integral en Linux, no una suposición portátil, sino una gran conveniencia). – pilcrow
posible problema con el registro es que podría interrumpir el tiempo y hacer que el problema desaparezca. – Spudd86