strace
Processus et système
Syntaxe
strace [-f] -p <pid>Affiche chaque appel systeme d'un processus, ce qui montre ou il se bloque ; la sortie part sur stderr, redirigez-la avec `2>&1`, il faut le droit ptrace (generalement sudo) et cela n'existe que sous Linux (macOS a dtruss).
Options courantes
| Option | Signification |
|---|---|
| -p <pid> | Attach to a process that is already running. |
| -f | Follow child processes and threads too. |
| -e trace=openat,connect | Only the syscalls you care about. |
| -s 200 | Show 200 characters of each string instead of the default 32. |
| -o <file> | Write to a file, since output goes to stderr. |
| -c | A summary count per syscall instead of every line. |
| -tt | Timestamps with microseconds, to see where the time went. |
Exemples
strace -f -e trace=openat ./app 2>&1 | grep configFind which config file it actually reads.
sudo strace -p 1234 -s 200See what a stuck process is waiting on.
sudo dtruss -p 1234The macOS counterpart; needs elevated privileges and often SIP changes.
Ce qui tourne et ce qui mange la machine. Identifier vient avant tuer.
Comment lire
- Les crochets [ ] marquent une partie facultative.
- Les points de suspension … signifient qu’on peut en mettre plusieurs.
- Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.
Questions fréquentes
Q. Que fait strace ?
Affiche chaque appel systeme d'un processus, ce qui montre ou il se bloque ; la sortie part sur stderr, redirigez-la avec `2>&1`, il faut le droit ptrace (generalement sudo) et cela n'existe que sous Linux (macOS a dtruss).
Q. Comment l’écrire ?
strace [-f] -p <pid> — les crochets marquent ce qui est facultatif.
Q. Combien d’options valent la peine ?
Il y en a 7 ici ; la liste complète est dans man strace. Cette commande relève de Processus et système.
Commandes liées
page man: man strace