$ strace -ff -o trace.log ./my_app --param=value
Системный вызов — фундаментальная концепция ядра Linux, обеспечивающая взаимодействие процессов с ОС. Когда stdout внезапно молчит, сокет завис, а процесс уходит в бесконечное ожидание, strace
становится вашим скальпелем для вскрытия. Этот инструмент трассирует все системные вызовы и сигналы целевого процесса, превращая чёрный ящик в прозрачную систему.
Зачем strace вместо дебаггера?
Разработчики часто недооценивают strace, предпочитая классические отладчики. Его сила — в работе непосредственно на границе пользовательского пространства и ядра. В отличие от gdb, strace показывает:
- Блокирующие операции (read, write, select)
- Сетевые взаимодействия (connect, accept)
- Доступ к файловой системе (open, stat)
- Управление памятью (brk, mmap)
- Сигналы (SIGSEGV, SIGPIPE)
Плюс:
...