如何核心转储Linux程序并继续运行?

时间:2016-09-05 07:49:22

标签: linux coredump

出于我自己的目的,我想对正在运行的应用程序进行常规核心转储 - 来自applciation 中的 - 但继续运行该程序。

我该怎么办?该应用程序只有一个进程,具有多个线程。

Google核心转储看起来很有前景,但不再受支持。还有另一种方式吗?

2 个答案:

答案 0 :(得分:1)

调用fork,然后在fork ed进程中转储核心。这有一个明显的缺点 - 除了调用fork的线程之外,你看不到线程堆栈。

答案 1 :(得分:0)

您可以使用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/