strace перехватывает системные вызовы процесса. Помогает понять, что программа делает, когда документации нет или она врёт.

# запустить и трассировать
strace ls /tmp

# подключиться к работающему процессу
strace -p 1234

# только вызовы открытия файлов
strace -e trace=openat,open ls /tmp

# только сетевые вызовы
strace -e trace=network curl example.com

# сохранить вывод в файл
strace -o /tmp/out.txt -p 1234

ltrace — то же самое, но на уровне вызовов разделяемых библиотек:

# вызовы libc и других .so
ltrace ./myapp

# только вызовы к конкретной библиотеке
ltrace -l libc.so.6 ./myapp

Типичный сценарий: программа молча падает — strace -e trace=file покажет, к каким файлам она обращалась и какой из них не найден.

#linux #bash #отладка #strace