2016-09-05 4 views
1

내 자신을 위해서, 나는 실행중인 응용 프로그램의 일반 코어 덤프 ()를 applciation에서 가져오고 싶지만 프로그램을 계속 실행하십시오.Linux 프로그램을 코어 덤프하고 계속 실행하는 방법?

어떻게하면됩니까? 앱에 여러 개의 스레드가있는 단일 프로세스가 있습니다.

Google 코어 덤프는 유망 해 보이지만 더 이상 지원되지 않습니다. 다른 방법이 있습니까?

+0

가능한 복제 [프로세스 내부에서 리눅스 코어 파일을 덤프하는 좋은 방법이 무엇입니까?] (http://stackoverflow.com/questions을 사용할 수 있습니다/318647/what-is-a-good-way-dump-a-linux-core-file-inside-a-process) –

답변

1

fork으로 전화 한 다음 fork 프로세스에서 코어를 덤프하십시오. 이것은 하나의 중요한 단점을 가지고 있습니다 - 당신은 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/

+0

나쁘다, 나는 내가 애플 리케이션 내에서 그렇게하고 싶다는 것을 분명히하지 않았다. 나는 그 질문을 갱신했다. – Mawg