Как выполнить дамп ядра программы Linux и продолжить работу?
Для моих собственных целей я хотел бы регулярно получать дамп ядра моего работающего приложения - из приложения - но продолжать запускать программу.
Как я могу это сделать? Приложение имеет один процесс с несколькими потоками.
Дамп ядра Google выглядел многообещающе, но больше не поддерживается. Есть ли другой способ?
2 ответа
Вызов fork
а затем сбросить ядро в fork
процесс ред. Это имеет один существенный недостаток - вы не можете видеть стеки потоков, кроме того, который вызвал fork
,
Вы можете использовать GDB
Let say I am running an app call matrix (a simple ncurses sample app that emulates the words flow).
I can obtain the process id by using pgrep and pass to gcore like this:
gcore `pgrep matrix`
The core file you obtain will be core.pid format like this:
core.6129
http://linux.byexamples.com/archives/371/gcore-obtain-core-dump-of-current-running-application/