LINUX.ORG.RU

Почему не создается coredump ?

 


0

1

Погуглил но не помогло.. Итак, - размер программы небольшой - права на запись в диреткорию есть - suid, guid биты не стоят - ulimit не ограниченый - ядро с поддержкой COREDUMP

[nuf@nuftop tmp]$ ulimit 
unlimited
[nuf@nuftop tmp]$ ls -lahd a.out 
-rwxr-xr-x 1 nuf users 6,7K авг  4 11:42 a.out
[nuf@nuftop tmp]$ ls -lahd .
drwxr-xr-x 15 nuf users 4,0K авг  4 12:47 .
[nuf@nuftop tmp]$ ./a.out 
Ошибка сегментирования (core dumped)
[nuf@nuftop tmp]$ ls -alh core*
ls: невозможно получить доступ к core*: Нет такого файла или каталога
[nuf@nuftop tmp]$ cat /proc/config.gz | gunzip  | grep -i core | grep -i dump
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_COREDUMP=y

Именно этот пример на Arch linux, но равно такое же поведение наблюдаю на debian по xen.. Такое ощущение, что я что то блин упускаю.

Есть соображения что ?

cat /proc/sys/kernel/core_pattern

в студию

может он создаётся, но в другой директории и под другим именем

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

то коры скорее всего валятся в журнал системде =\

омг, Поттеринг похищает коредампы, дотянулся, проклятый :)

Harald ★★★★★
()
Ответ на: комментарий от Harald
[nuf@nuftop tmp]$ sysctl kernel.core_pattern
kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e
[nuf@nuftop tmp]$ cat /proc/sys/kernel/core_pattern
|/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e
sir_nuf_nuf
() автор топика
Ответ на: комментарий от sir_nuf_nuf

ну собственно да, худшие опасения подтвердились, дамп пишется не в файл, а скармливается в stdin /usr/lib/systemd/systemd-coredump

сделай echo «core» > /proc/sys/kernel/core_pattern

и дампы будут создаваться в текущей директории под именем core

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

Спасибо, с arch проблема решена.

В debian видимо просто ядро собрано без coredump smal@vm9134:~$ cat /proc/config.gz | gunzip | grep -i core | grep -i dump CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y

sir_nuf_nuf
() автор топика
17 июня 2014 г.

В файле /etc/security/limits.conf надо раскомментировать строку

#* soft core 0

и заменить 0 на unlimited. Получится что-то вроде:

* soft core unlimited

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