Генерация встроенного дампа ядра из программы на C / C ++

В ходе разработки какого-либо приложения мы столкнулись с необходимостью получения полного дампа ядра без полной остановки выполнения программы.

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

Я хочу послать сигнал программе и сгенерировать полное ядро ​​без минимального влияния на выполнение программы.

Это возможно? Если так, как?

0

Решение

Посмотрите эту библиотеку Google, это может помочь: http://code.google.com/p/google-coredumper/

Библиотека coredumper может быть скомпилирована в приложения для создания
дампы ядра работающей программы — без прерывания.

3

Другие решения

Coredumpber для Linux и, очевидно, отличная идея, если это ваша ОС.

Для других подобных Posix систем что-то вроде этого должно работать нормально:

#include <stdlib.h>
#include <process.h>

// Fork and abort for a core dump. This process keeps running.
if (fork() == 0) abort();

Конечно, среда должна быть настроена на сброс ядра на SIGABRT, Вы также можете попробовать raise(SIGTERM)это как kill -9,

0