strace
Processos e sistema
Uso
strace [-f] -p <pid>Imprime cada chamada de sistema que um processo faz, e assim voce ve onde ele travou; a saida vai para stderr, redirecione com `2>&1`, precisa de permissao ptrace (geralmente sudo) e existe apenas no Linux (macOS tem dtruss).
Opções comuns
| Opção | Significado |
|---|---|
| -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. |
Exemplos
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.
O que está rodando e o que está comendo a máquina. Identificar vem antes de matar.
Como ler
- Os colchetes [ ] marcam uma parte que você pode omitir.
- As reticências … indicam que você pode listar vários.
- As opções diferenciam maiúsculas: em alguns comandos -r e -R fazem coisas diferentes.
Perguntas
Q. O que strace faz?
Imprime cada chamada de sistema que um processo faz, e assim voce ve onde ele travou; a saida vai para stderr, redirecione com `2>&1`, precisa de permissao ptrace (geralmente sudo) e existe apenas no Linux (macOS tem dtruss).
Q. Como se digita?
strace [-f] -p <pid> — os colchetes marcam o que você pode omitir.
Q. Quantas opções vale a pena saber?
Aqui estão 7; a lista completa está em man strace. Este comando fica em Processos e sistema.
Comandos relacionados
página man: man strace