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
