Создание файла основного дампа дочернего процесса

Я пытаюсь запустить gpg из моего php-скрипта, используя exec(). Но он вылетает из-за ошибки сегментации: «gpg: обнаружена ошибка сегментации ... выход». Он падает в дочернем процессе, поэтому мой php-скрипт работает нормально. Чтобы определить проблему, я хочу получить основной файл. я пытался бежать

ulimit -c unlimited
echo 1 > /proc/sys/fs/suid_dumpable

Я добавил «* soft core limited» в /etc/security/limits.conf, но файлы ядра не были созданы.

Буду очень благодарен за любые советы или идеи.


person user101159    schedule 03.03.2010    source источник


Ответы (2)


Судя по выходному сообщению, gpg перехватывает исключение (правда ли это?).

Вы можете попробовать команду gcore, если применимо. В противном случае, если исходный код доступен (что, как я предполагаю, так как вы его отлаживаете), вы можете использовать, например, google-coredumper. Хотя не уверен, что этого вам достаточно.

person amit    schedule 03.03.2010
comment
У меня есть исходники, но я не понимаю, как мне может помочь google-coredumper. Он может делать дамп в определенном месте кода, но я не знаю, в каком именно месте он падает. - person user101159; 03.03.2010
comment
@sfoid Другой вариант — попытаться запустить его с помощью valgrind, что может указать на ошибку. Похоже на сложную проблему. - person amit; 03.03.2010

Может быть, вы можете начать думать, что ваша проблема может заключаться в том, что gpg ловит некоторые исключения или проблемы с РАЗРЕШЕНИЕМ. Сначала проверьте.

Надеюсь, это поможет

person deddihp    schedule 11.03.2010