Создаем папку для дампов памяти падающих программ:
mkdir -p /var/log/dumps
chmod -R 755 /var/log/dumps
Указываем путь для сохранения дампов явно:
echo 'kernel.core_pattern = /var/log/dumps/core.%e.%p' > /etc/sysctl.d/10-coredump.conf
sysctl --system
Также если существует файл /etc/default/apport в него нужно вписать:
Иначе при ребуте он пропишет свою программу вместо обычного сбора дампов на диск.
Далее нам нужно для конкретного приложения, которое мы собираемся отлаживать задать актвиацию дампов памяти:
enabled=0
Иначе при ребуте он пропишет свою программу вместо обычного сбора дампов на диск.
Далее нам нужно для конкретного приложения, которое мы собираемся отлаживать задать актвиацию дампов памяти:
Стандартно дампы отключены:
# ulimit -a|grep core
core file size (blocks, -c) 0
# ulimit -c unlimited
# ulimit -a|grep core
core file size (blocks, -c) unlimited
Много советов в сети, что активировать дампы "правильно" нужно через /etc/security/limits.conf, но это не так, это будет работать лишь в случае, если сервис использует PAM, а это очень часто НЕ так.
Так что нужно в блоке start init.d скрипта, который запускает интересующую Вас программу добавить строку:
ulimit -c unlimited
После того, как прописали это для сервиса, перезапускаем его и убвеждаемся, что дампы включены (18829 - здесь PID процесса, дамп памяти которого Вы хотите в результате получить):
cat /proc/18829/limits |grep core
Max core file size unlimited unlimited bytes
No comments :
Post a Comment
Note: only a member of this blog may post a comment.