나는 프로그램이있어 kill -STOP
에 의해 중지되었다. 나는 그것을 실행하지 않고 코어 덤프를하고 싶다 (프로그램은 모든 시간 동안 중지되어야하며, SIGCONT를 받으면 코어 덤프없이 죽을 것이다). 코어 덤프를 얻으려면 어떻게해야합니까?중지 된 프로그램 (리눅스)에서 코어 덤프를 얻는 방법
코어 덤프를 복용 한 후 프로그램을 현재 상태로 유지할 수 있습니까? 그것은 매우 드문 상황이며 재현 할 수는 없지만 분석해야합니다.
감사
업데이트합니다 gcore 명령이 작동하지 않습니다. Gdb (짝수 루트)는 중지 된 프로세스에 연결할 수 없습니다 (ptrace PTRACE_ATTACH에서 영원히 기다림). dd조차도/proc/99999/mem을/proc/99999/maps에서 좋은 오프셋으로 읽을 수 없습니다 (오류는 No such process
입니다). 내가 GDB로 이동하여 코어를 저장하면
내가 처리하고 중지 프로세스에 SIGCONT를 보내도록 GDB를 연결하려고하면
, 나는path... linux-nat.c:####: internal-error: linux_nat_attach: Assertion `pid == GET_PID (inferior_ptid) && WIFSTOPPED (status) && WSTOPSIG (status) == SIGSTOP' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
을 가지고, 그것은 손상됩니다. "메모리에서 유효한 개체 파일 이미지를 읽지 못했습니다."
시작하지 않고 프로세스에서 분리 할 수 있습니까? (분리 후 멈추길 원합니다) – osgx
네, 시작하지 않아도됩니다. 코어 파일을 원한다면'gcore'가 가장 쉽기 때문에 기존 프로세스를 전혀 망치지 마십시오. –
gcore가 중지 된 프로세스에서 작동하지 않습니다^( – osgx