Re: Отладка демона под Linux
От: Dmitry V. Krivenok Россия  
Дата: 10.01.12 11:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как отлаживать демона под Linux? Можно ли подключиться к нему отладчиком? Какие вообще существуют отладчики, пригодные для этой цели?


В Linux есть куча полезных тулов для анализа поведения демона, которые могут
быть полезны когда нет доступа к исходникам или логгирование отсутствует (или
плохо реализовано, когда из логов ничего не понятно).
1) strace
Очень важный тул, который часто позволяет за 5 минут понять в чем проблема
Наиболее распространенные ситуации
— что-то возвращает EPERM, EACCES, EEXIST, etc
— висим на вызове connect или read
— кто-то убивает дочерние процессы
— проблема с блокировками (deadlocks, livelocks)
Иногда полезен бывает и ltrace.
2) Network & files tools
Демоны часто сетевые, так что нужно занать полезные тулы для сетевой отладки
— tcpdump/wireshark
— netstat/ip/route
— lsof
— ping/traceroute/nc/
— dig/nslookup
3) SystemTap
В случае, если тулы, описанные выше, не помогают, то можно использовать SystemTap
с фильтром по PID'у демона. Это пожалуй самый гибкий и информативный тул, но требует
некоторых знаний того, что лежит за сиситемными вызовами и вообще знаний ядра.

Все, что описано выше, — дополнение к хорошо продуманный системе логгирования.
Грамотные логи позволяют понять 90% проблем.

P.S.
IMHO, использование GDB не сильно помогает, разве что в довольно простых
случаях при анализе core дампов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.