20

Я включил неограниченный размер основного файла, используя ulimit:

ulimit -a
core file size          (blocks, -c) unlimited
...

Я полагаю, что вызвал дамп ядра, но не могу найти файл ядра у себя дома, var/... и т.д ...

Знаете ли вы, где Ubuntu настраивает расположение дампа ядра?

3 ответа3

29

По умолчанию ядро Ubuntu настроено на использование apport для регистрации coredumps. Вы можете переопределить это, переписав /proc/sys/kernel/core_pattern , проверьте раздел "Имена файлов дампов ядра" в man core для деталей. Например:

echo '/tmp/core.%e.%p.%t' | sudo tee /proc/sys/kernel/core_pattern

Apport записывает дампы ядра в /var/crash/_path_to_program.userid.crash , НО это будет делать только для приложений, установленных из основных репозиториев Ubuntu apt.

Больше информации на apport: https://wiki.ubuntu.com/Apport

6

Я думаю, что это больше относится к ядру Linux, чем к конкретному Ubuntu. Проверять, выписываться

cat /proc/sys/kernel/core_pattern

Проверьте справочную страницу файла ядра

1

В Ubuntu 16.04.3 LTS мой дамп ядра был расположен по адресу:

/var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000

Итак, чтобы запустить его в gdb , вы можете запустить:

apt install gdb gdb /path/to/your/binary/application-name /var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .