出于我自己的目的,我想从应用程序中定期转储我正在运行的应用程序,但继续运行程序。
我该怎么做?应用程序只有一个进程,但有多个线程。
谷歌核心转储看起来很有希望,但不再支持。还有别的办法吗?
调用fork
,然后在fork
进程中dump core。这有一个明显的缺点——你不能看到除了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/