Linux 애플리케이션 충돌로 생성된 코어 파일을 어디에서 검색할 수 있나요?

Linux 애플리케이션 충돌로 생성된 코어 파일을 어디에서 검색할 수 있나요?

내 Linux 응용 프로그램 중 하나가 충돌하는 이유를 알아내려고 합니다. 하지만 핵심은 어디로 갔는지 모르겠습니다.

cat /proc/sys/kernel/core_pattern
core.%e.%p

어떤 아이디어가 있나요?

답변1

시스템 사용량체계일반적으로 코어를 덤프하도록 구성됩니다.

/var/lib/systemd/coredump/

coredumpctl명령을 사용하여 코어 덤프를 나열할 수 있습니다. 당신은 또한 볼 수 있습니다systemd로 마이그레이션한 후 더 이상 코어 덤프가 없습니다.

답변2

코어 덤프는 충돌 당시 프로세스의 현재 디렉터리에 기록됩니다.

물론 코어 덤프를 활성화해야 하며 기본적으로 일반적으로 비활성화되어 있습니다. 출력을 확인하십시오 ulimit -c. 0이면 코어 파일이 기록되지 않습니다. 코어 덤프를 활성화하려면 실행하세요 ulimit -c unlimited. 이는 프로세스별 설정이며 해당 프로세스에 의해 시작된 프로세스에 의해 상속됩니다.

코어 덤프를 생성해야 하지만 위치를 모르는 경우 프로세스를 다시 시작하고(즉시 충돌하지 않는 경우) " 프로세스 ID는 ls -l /proc/$pid/cwd어디에 있습니까?"를 수행하여 작업 디렉터리를 확인할 수 있습니다. $pid링크는 프로세스의 현재 작업 디렉터리를 가리킵니다. 코어 덤프가 발생할 가능성이 높습니다. 그렇지 않으면 find전체 시스템에서 실행 해야 합니다 ...

관련 정보