Привет,OS Linux 2.6
Есть программа (daemon) которая крутиться и открывает, читает, пишет. закрывает разные файлы.
Поступает сигнал через IPC на остановку программы.
И программа застывает в странном состоянии на несколько минут. Не каждый раз. Но воспроизводимо.
Программа держит открытыми несколько файлов, но не возможно подключится к программе с помощью strace или gdb, дабы увидеть где оно их держит.
Команды strace -p 11111 или gdb /bin/appname 11111 просто висят, и потом говорят, что процесс вышел.
Сигнады ABBRT и QUIT тоже не доходят.
Программа заканчивается и всё ок, но эти несколько минут мне не понятно. что оно делает.Возможно ли как-нибудь, может быть через kernel debugger, посмотреть, что там происходит?
Спасибо.
> не возможно подключится к программе с
> помощью strace или gdb, дабы увидеть где оно их держит.
> Команды strace -p 11111 или gdb /bin/appname 11111 просто висят, и потом
> говорят, что процесс вышел.попробуйте
- запустить gdb раньше, чем придет сигнал по ipc
- посмотреть состояние процесса (STATE, WCHAN) в момент "зависания"
> попробуйте
> - запустить gdb раньше, чем придет сигнал по ipc
> - посмотреть состояние процесса (STATE, WCHAN) в момент "зависания"Спасибо.
Всё гениальное просто, почему мне это не пришло в голову. :-)
Завтра попробую.