strace

13 commands

13 shown

Трассировать новый процесс Запустить команду под strace и сохранить вывод в файл strace -o trace.log ls /tmp #strace#linux#debug Подключиться к процессу Трассировать системные вызовы уже запущенного процесса strace -p $(pgrep nginx | head -1) -o /tmp/nginx.trace #strace#linux#debug Трассировать только конкретные syscall Фильтровать только syscall связанные с файлами strace -e trace=openat,read,write curl https://example.com #strace#linux#debug Статистика syscall Сводная таблица количества и времени системных вызовов strace -c -e trace=all python3 app.py #strace#linux#debug#performance Следовать за дочерними процессами Трассировать syscall во всех дочерних процессах strace -f -e trace=process nginx -t #strace#linux#debug Показать временны́е метки -tt добавляет абсолютное время; -T — время каждого вызова strace -tt -T curl https://example.com 2>&1 | head -40 #strace#linux#debug#performance Трассировать доступ к файлам Найти файлы которые процесс пытается открыть но не находит strace -e trace=openat -e trace=file myapp 2>&1 | grep 'ENOENT' #strace#linux#debug Трассировать сетевые syscall Захватить все сетевые системные вызовы strace -e trace=network,socket curl https://example.com 2>&1 | grep -v '^---' #strace#linux#debug#network Сводка по числу syscall Сводит число и время syscall по форкам, сортируя по времени; находит дорогой вызов strace -c -f -S time -p <pid> #strace#performance#debug#troubleshooting Расшифровка fd с таймингом Показывает пути/сокеты за fd плюс длительность и метки времени для файловых операций strace -yy -T -tt -e trace=%file -p <pid> #strace#debug#disk#troubleshooting Стек на каждый syscall Печатает стек на каждый openat, чтобы найти кто открывает файл; нужны debug-символы strace -k -e trace=openat -f -p <pid> #strace#debug#troubleshooting#disk Инъекция ошибок syscall Заставляет 3-й openat падать с ENOENT для проверки обработки ошибок; chaos-тест без кода strace -f -e inject=openat:error=ENOENT:when=3 -p <pid> #strace#debug#troubleshooting#ci Трассировка доставленных сигналов Показывает только сигналы (SIGTERM/SIGCHLD), пропуская syscall; отлаживает загадочные kill. прим.: ltrace для вызовов библиотек strace -f -e signal=all -e trace=none -p <pid> #strace#debug#troubleshooting#kernel
no commands match