Estoy intentando diagnosticar un comando lento intermitente. Cuando ejecuto el comando y lo veo colgado, presiono control + t para obtener el PID, luego en otra pestaña, ejecuto diagnose [PID]
, por ejemplo, diagnose 123
. He definido diagnose
como una función en mi configuración 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, ya que estoy reaccionando cuando noto un bloqueo, ejecuto diagnose
varios segundos después de que comenzó el proceso. La salida enumera muchas llamadas al sistema, pero me pregunto si me estoy perdiendo algo importante.
¿Dtruss lista los comandos de forma retroactiva? En otras palabras, ¿la salida de dtruss -p [PID]
incluye las llamadas al sistema realizadas por ese proceso antes de que se ejecutara dtruss
?