Есть некое приложение, которое переодически падает по signal 11 (segmentation fault). Не могу его отладить, так как почему-то не сохраняются корки. Приложение стартует от имени рута, затем после запуска приложение демонизируется и при помощи setuid понижаются полномочия.
Если setuid не вызывать, то корки сохраняются. Как заставить сохранять корки после вызова setuid?
>Есть некое приложение, которое переодически падает по signal 11 (segmentation fault). Не
>могу его отладить, так как почему-то не сохраняются корки. Приложение стартует
>от имени рута, затем после запуска приложение демонизируется и при помощи
>setuid понижаются полномочия.
>Если setuid не вызывать, то корки сохраняются. Как заставить сохранять корки после
>вызова setuid?1. Если сразу запустить в отладчике, то дамп не нужен.
2. Проверь права на создание core файла пользователем
>1. Если сразу запустить в отладчике, то дамп не нужен.
>
>2. Проверь права на создание core файла пользователем1. Это известно, но баг выцепить тяжело, приложение падает раз в месяц при определенных условиях. Вот тут бы и помогли корки.
2. Права есть, если приложение запускать сразу от имени пользователя, корка создается, но, к сожалению, для открытия сокетов приложение должно стартовать от рута.
Если программа suid - разрешай делать дамп в ядре.Если нет - проверяй ограничения (rlimits) на core. Вполне возможно что у root максимальный размер core в 0 установлен и setuid его не изменяет.
>Есть некое приложение, которое переодически падает по signal 11 (segmentation fault). Не
>могу его отладить, так как почему-то не сохраняются корки. Приложение стартует
>от имени рута, затем после запуска приложение демонизируется и при помощи
>setuid понижаются полномочия.
>Если setuid не вызывать, то корки сохраняются. Как заставить сохранять корки после
>вызова setuid?Может банально нет прав на запись в каталог от пользователя? Хотя не уверен, от какого пользователя будет сохраняться core файл. Попробуй запускать ее в /tmp.