Дамп процесса во время сбоя / выхода для импорта GDB? - PullRequest
0 голосов
/ 09 января 2012

У меня есть программное обеспечение C ++ (сервер) и его сбой, я точно не знаю где проблема основана на журналах. Я хочу сделать что-то, что после Linux сбой или выйти сделать дамп этого процесса, который я каким-то образом импортирую, что это подать на gdb и проанализировать, что делать, что не следует.

Кто-нибудь что-то делал в прошлом? Может ли кто-нибудь помочь мне с некоторыми информационными идеями или чем-то?

Спасибо!

Ответы [ 3 ]

5 голосов
/ 09 января 2012

То, что вам нужно, это обычный дамп ядра, который работает с GDB для поиска места сбоя. См. http://linux.die.net/man/5/core для информации.

Если у демона нет разрешения на запись в текущем каталоге, ядро ​​не будет сгенерировано. Чтобы перенаправить его, попробуйте;

mkdir /tmp/corefiles 
chmod 777 /tmp/corefiles 
echo "/tmp/corefiles/core" > /proc/sys/kernel/core_pattern 
1 голос
/ 09 января 2012

Как ответили другие, вы можете получить файл дампа ядра.Обязательно настройте свою среду соответствующим образом.

Другой способ, когда демон уже запущен и до его сбоя, - присоединить через отладчик.

И вы также можете запустить своего демона с gdb --args / path / to / daemon аргументы демона ...

1 голос
/ 09 января 2012

Вы ищете файл ядра?В сценарии, который запускает ваш демон, добавьте эту команду (при условии, что интерпретатор для сценария bash):

ulimit -c unlimited

, который устанавливает максимальный размер файла ядра как "неограниченный" (обычно это 0по умолчанию).

...