LINUX.ORG.RU

Обработчики сигнала


0

1

Есть выполняющийся процесс. Как мне узнать какие у него установлены обработчики сигналов? Пока на ум пришло gdb attach + call sigaction для всех сигналов. Но это долго и некрасиво. Может можно как-то через /proc/<pid> или еще как?

★★★

У всех процессов установлены все обработчики. Процесс их только заменяет.

m0xf ()
Ответ на: комментарий от m0xf

Это тут к чему? Мне нужно знать какие именно обработчики установлены в данный конкретный момент времени.

Chumka ★★★ ()
Ответ на: комментарий от sjinks

Это маски сигналов (sigset_t). Мне нужны обработчкики

Chumka ★★★ ()
Ответ на: комментарий от Chumka

В смысле, их адреса в адресном пространстве процесса?

sjinks ★★★ ()
Ответ на: комментарий от Chumka

Странное желание, а если я при помощи signalfd повешу обработчик, какой тогда будет адрес?

vga ★★ ()
Ответ на: комментарий от Chumka

Тогда Вам придется лезть в память ядра. Не буду говорить, что знаю, как это сделать.

А если не секрет, в чем глубокий философский смысл сего действа?

sjinks ★★★ ()
Ответ на: комментарий от sjinks

Есть программа. В какой-то момент программа впадает в deadlock при получении какого-то сигнала и вызове в обработчике этого сигнала не-signal-safe функции. Стек сейчас показать не могу, это трудно отловить, но он похож на этот http://siddhesh.livejournal.com/22731.html. и заканчивается на функции что-то типа __ll_lock() Т.е. я знаю, что процесс получил сигнал и вызвал какой-то обработчик. Но что это за обработчик я не могу понять.

Chumka ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.