¿Existe un equivalente de lo que hace la opción -Ty -Ude la trussutilidad Solaris en Linux?
Esos son para especificar una llamada al sistema ( -T) o una función de biblioteca ( -U) que, cuando es invocada por la aplicación rastreada, hará que se detenga.
O, dicho de otro modo, me gustaría que cualquier proceso iniciado por una aplicación rastreada se detenga (como si SIGSTOP lo elimine) tan pronto como realice una llamada al sistema o una llamada a la función de biblioteca compartida.
stracey ltraceen Linux proporcionan gran parte del conjunto de características de Solaris truss, pero no parecen estar haciendo eso.
Por ejemplo:
truss -f -T open cmd
Sería como, strace -f cmdexcepto que si el proceso en ejecución cmdo alguno de sus descendientes realiza alguna openllamada al sistema, se detendrá de inmediato (y puedo reanudarlo más adelante según mi conveniencia)
En algunos casos, podía usar los gdb's' catch syscall, pero estaba buscando una solución que pudiera seguir convenientemente las bifurcaciones y continuar haciéndolo para todos los procesos bifurcados y seguir haciéndolo incluso después de execves.
Parece recordar alguna utilidad que ofrece la misma funcionalidad, incluso una (u opciones para esa misma utilidad) para aplicaciones de un solo paso entre algunas ocurrencias de alguna llamada de sistema remotamente así, pero mi memoria me está fallando, ni siquiera puedo estar seguro eso fue en Linux.

follow-exec-mode), estoy experimentando con eso. No responde estrictamente la pregunta, pero puede ser lo suficientemente bueno para lo que necesito.trussmanual de Solaris .Respuestas:
Que yo sepa, esto no se puede hacer con
stracelaptracefunción que se usa internamenteSIGSTOPoSIGINTcon llamadas.EDITAR:
Inserté esta solución simple en ministrace , por lo que no se requiere codificación.
Mi solución propuesta, si no se requiere toda la funcionalidad de strace, sería modificar el ministrace, que encontré aquí Escríbete un strace en 70 líneas de código .
En un programa de un solo disparo, puede agregar dos líneas antes del siguiente código:
Pseudocódigo:
No he probado nada de esto, te dejo estos pasos finales.
fuente
Systemtap debería poder hacer lo que está buscando, es una buena guía para ello:
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/SystemTap_Beginners_Guide/
fuente