Я хочу создать дамп ядра, когда мой процесс выйдет из строя. В настоящее время я придерживаюсь такого подхода:
- Создайте специальную "отладочную" версию программы, используя "-g" gcc/g++.
- Выполнить "ulimit -c неограниченное"
- Теперь мы получаем дамп ядра при сбое программы.
Но я хочу свести к минимуму количество шагов, чтобы:
- Дамп ядра всегда должен создаваться. Даже если это "релиз". Пользователь не должен запрашивать команду "
ulimit -c unlimited
" вручную. - Эта базовая обратная линия дампа должна быть способна предоставить файл, функцию, номер строки вызовов. Это трассировка стека в удобочитаемой форме.
- Я не хочу создавать программу как сборку отладки с помощью "-g". По крайней мере, он не должен содержать никакой другой информации для отладки, которая не требуется для создания отслеживаемой пользователем трассировки стека. Потому что это будет выпускная версия программы.
У меня есть два вопроса:
- Как создать основной дамп в сборке "release" программы?
- Всегда. Без ручного выполнения "
ulimit -c unlimited
"