← До фільтрів та технологій

← До списку лабораторних по Linux

Linux Лабораторна 84: Аналіз системних викликів процесу

Технологія: Linux

Номер лабораторної: 84 · Рівень: middle

Тема: strace як інструмент налагодження

Повний опис / сценарій лабораторної:

Мета: навчитися застосовувати strace щоб побачити системні виклики програми і зрозуміти де вона блокується або падає.



Крок 1. Запустити просту команду під strace.

Команда: strace -o ~/strace_ls.log ls /tmp >/dev/null

Пояснення: системні виклики ls будуть записані у файл.



Крок 2. Переглянути перші рядки логу.

Команда: head -n 20 ~/strace_ls.log

Пояснення: побачите виклики типу openat, read, write.



Крок 3. Запустити strace у режимі короткого резюме.

Команда: strace -c ls /tmp >/dev/null

Пояснення: отримаєте статистику за типами викликів.



Крок 4. Знайти процес що завис та відстежити його.

Пояснення: у тестовій системі можете запустити sleep 1000 і прикріпитися до нього.



Крок 5. Прикріпитися до процесу через strace -p.

Команда: strace -p PID

Пояснення: перевірте які виклики він робить або на чому чекає.



Крок 6. Додати опцію -f для відстеження дочірніх процесів.

Пояснення: це корисно для сервісів що форкують багато дочірніх.



Крок 7. Відфільтрувати тільки файлові виклики.

Команда: strace -e trace=file ls /etc >/dev/null

Пояснення: у лог потраплять тільки операції з файлами.



Крок 8. Відпрацювати сценарій коли програма не може знайти бібліотеку або конфіг.

Пояснення: запустіть strace для такої програми і подивіться які шляхи вона перевіряє.



Крок 9. Акуратно зупинити strace і процес над яким ви працювали.

Пояснення: переконайтеся що не залишилось зайвих процесів.



Крок 10. Міні звіт.

Завдання: опишіть кейс з реальної практики де strace допоміг би знайти проблему відмови у доступі або відсутнього файла.