URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9224
[ Назад ]

Исходное сообщение
"как узнать что делает программа"

Отправлено Andrey , 20-Авг-11 08:16 
Привет,

OS Linux 2.6

Есть программа (daemon) которая крутиться и открывает, читает, пишет. закрывает разные файлы.
Поступает сигнал через IPC на остановку программы.
И программа застывает в странном состоянии на несколько минут. Не каждый раз. Но воспроизводимо.
Программа держит открытыми несколько файлов, но не возможно подключится к программе с помощью strace или gdb, дабы увидеть где оно их держит.
Команды strace -p 11111 или gdb /bin/appname 11111 просто висят, и потом говорят, что процесс вышел.
Сигнады ABBRT и QUIT тоже не доходят.
Программа заканчивается и всё ок, но эти несколько минут мне не понятно. что оно делает.

Возможно ли как-нибудь, может быть через kernel debugger, посмотреть, что там происходит?

Спасибо.


Содержание

Сообщения в этом обсуждении
"как узнать что делает программа"
Отправлено anonymous , 20-Авг-11 13:20 
> не возможно подключится к программе с
> помощью strace или gdb, дабы увидеть где оно их держит.
> Команды strace -p 11111 или gdb /bin/appname 11111 просто висят, и потом
> говорят, что процесс вышел.

попробуйте
- запустить gdb раньше, чем придет сигнал по ipc
- посмотреть состояние процесса (STATE, WCHAN) в момент "зависания"



"как узнать что делает программа"
Отправлено Andrey , 21-Авг-11 05:53 
> попробуйте
> - запустить gdb раньше, чем придет сигнал по ipc
> - посмотреть состояние процесса (STATE, WCHAN) в момент "зависания"

Спасибо.
Всё гениальное просто, почему мне это не пришло в голову. :-)
Завтра попробую.