Как выполнить дамп ядра программы 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/

Другие вопросы по тегам