2012-05-18 15 views
7

Cuando se ejecuta strace en un programa de multiproceso consigo resultados como este:Programa Strace multiproceso

[pid 14778] futex(0x7fd8082f266c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fd8082f2668, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...> 
[pid 14780] <... futex resumed>)  = 0 

Aviso los argumentos están en una línea con <unfinished...> y el resultado es en otra línea con <...resumed>. No tener argumentos correlacionados con sus resultados reduce la utilidad de strace. ¿Es posible imprimir los resultados y los argumentos en la misma línea al rastrear un programa multiproceso?

+1

si la salida a archivos usando -ff -o puedo conseguir el resultado que estoy buscando. Sin embargo, preferiría escribir el resultado en mi consola en lugar de cien archivos diferentes. :) – benmmurphy

+0

.. pero hay un problema de cronología: esa operación mutex particular realmente comienza en un hilo, bloquea ese hilo y causa un retorno en otro hilo. – pjc50

+0

No me importaría si se imprimiera: syscall (args) = sin terminar, reanudado: syscall (args) = resultado. eso no tiene un problema cronológico y aún puedo unir args a un resultado. el problema es que la segunda línea que imprime en este momento es syscall (reasumido) = resultado que no me es muy útil. – benmmurphy

Respuesta

9

uso strace -ff cmd 2> log.out

+0

esto no funciona para mí. probablemente porque tengo una versión anterior de strace :( – benmmurphy

Cuestiones relacionadas