Отладка демона под Linux
От: Аноним  
Дата: 03.11.11 04:47
Оценка: -1
Как отлаживать демона под Linux? Можно ли подключиться к нему отладчиком? Какие вообще существуют отладчики, пригодные для этой цели?
Re: Отладка демона под Linux
От: Centaur Россия  
Дата: 03.11.11 06:25
Оценка:
Здравствуйте, Аноним, Вы писали:

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


Обычно делают, чтобы программа могла запускаться не только в режиме демона, но и (с каким-нибудь ключом) просто интерактивно. Далее работают все обычные приёмы отладки, начиная от отладочного вывода.
Re: Отладка демона под Linux
От: ДимДимыч Украина http://klug.org.ua
Дата: 03.11.11 12:13
Оценка: 2 (1)
Здравствуйте, Аноним, Вы писали:

А>Как отлаживать демона под Linux? Можно ли подключиться к нему отладчиком?


Можно, gdb /path/to/binary -p PID. Ну или kdbg вместо gdb.
Можно сделать ключик debug, с которым демон будет писать отладочные сообщения в syslog.
Можно сделать ключик для запуска без отрыва от терминала и писать отладочные сообщения в stdout.
http://files.rsdn.org/25994/sign.gif Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re: Отладка демона под Linux
От: Uzumaki Naruto Ниоткуда  
Дата: 05.11.11 17:58
Оценка:
Пишете обычное консольное приложение, далее при запуске используется в конце командной строки запуска & с сохранением pid или start-stop-daemon, daemon и другие системные методы установки консольных приложений как демоны...

http://files.rsdn.org/67166/naruto.png
Re[2]: Отладка демона под Linux
От: Handler Украина  
Дата: 05.11.11 22:13
Оценка:
На сегодняшний день нет инструментов отладки кода, содержащего в себе одну/несколько функций: fork() pthread*() exec*().
Скажу даже больше: никто не может гарантированно судить о поведении многопоточных приложений: можно лишь строить предположения.
Самый лучший совет — syslog().
Остальное придет с опытом.
Whoa...I did a 'zcat /vmlinuz > /dev/audio' and I think I heard God...
Re[3]: Отладка демона под Linux
От: Handler Украина  
Дата: 05.11.11 22:17
Оценка:
Пардон, маленькая оговорочка: когда процесс запущен, к нему можно подключиться любым отладчиком из меню "attach to process-> process id"
Whoa...I did a 'zcat /vmlinuz > /dev/audio' and I think I heard God...
Re: Отладка демона под Linux
От: Oleg Kosenkov США http://files.rsdn.org/4543/rsdn.gif
Дата: 11.12.11 20:52
Оценка:
Здравствуйте, Аноним, Вы писали:

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


Debugging Forks:
http://sourceware.org/gdb/onlinedocs/gdb/Forks.html

читать про GDB (google gdb fork):

  1. follow-fork-mode
  2. detach-on-fork
  3. follow-exec-mode
my $.02
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 дампов.
Re: Отладка демона под Linux
От: Alexander Pazdnikov  
Дата: 09.02.12 07:45
Оценка:
Здравствуйте, Аноним, Вы писали:

Пользуюсь eclipse'ом как для разработки, так и для отладки.

Лучшего backend'а для gdb под linux не видел.
+ ещё pretty printers
Re[2]: Отладка демона под Linux
От: Аноним  
Дата: 20.08.12 12:56
Оценка:
Здравствуйте, Alexander Pazdnikov, Вы писали:

AP>Здравствуйте, Аноним, Вы писали:


AP>Пользуюсь eclipse'ом как для разработки, так и для отладки.


AP>Лучшего backend'а для gdb под linux не видел.

AP>+ ещё pretty printers

Плохо смотрели!
Qt Creator
Re[3]: Отладка демона под Linux
От: MasterZiv СССР  
Дата: 21.08.12 16:01
Оценка: +1
> AP>Лучшего backend'а для gdb под linux не видел.
> AP>+ ещё pretty printers <http://sourceware.org/gdb/wiki/STLSupport&gt;

Лучший бэкенд для GDB -- сам GDB.
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.