0 votos

¿Lista `dtruss -p PID` las llamadas al sistema realizadas antes de ejecutar dtruss?

Estoy tratando de diagnosticar un comando intermitentemente lento. Cuando ejecuto el comando y veo que se cuelga, presiono control + t para obtener el PID, luego en otra pestaña, ejecuto diagnose [PID] - Ej, diagnose 123 . He definido diagnose como una función en mi configuración de zsh:

# See system calls of the process with a given PID
function diagnose() { sudo dtruss -cade -p "$1" 2>&1 | tee /tmp/dtruss_output }

Obviamente, como estoy reaccionando cuando noto un cuelgue, corro diagnose varios segundos después del inicio del proceso. La salida enumera muchas llamadas al sistema, pero me pregunto si me estoy perdiendo algo importante.

¿Lista dtruss los comandos con carácter retroactivo? En otras palabras, ¿la salida de dtruss -p [PID] incluyen las llamadas al sistema realizadas por ese proceso antes de dtruss ¿se ejecutó?

1voto

Nathan Long Puntos 385

No

Acabo de hacer un experimento para comprobarlo. Escribí y ejecuté este Ruby script:

puts "going to read foo"
puts File.read('/tmp/foo.txt')

sleep 5
puts "going to read bar"
puts File.read('/tmp/bar.txt')

sleep 5
puts "going to read baz"
puts File.read('/tmp/baz.txt')

Después de que se inició, corrí diagnose en su PID, como se ha descrito anteriormente. Sólo he visto una llamada a open :

20309/0x4a7118:     34082      41     34 open("/tmp/baz.txt\0", 0x1000000, 0x1B6)        = 7 0

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X