出于我自己的目的,我想对正在运行的应用程序进行常规核心转储 - 来自applciation 中的 - 但继续运行该程序。
我该怎么办?该应用程序只有一个进程,具有多个线程。
Google核心转储看起来很有前景,但不再受支持。还有另一种方式吗?
答案 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/