리눅스 응용 프로그램의 충돌로 생성 된 코어 파일을 어디에서 검색합니까? 그러나 나는 핵심이 어디로 가고 있는지

Linux 응용 프로그램 중 하나의 충돌 원인을 찾으려고합니다. 그러나 나는 핵심이 어디로 가고 있는지 모른다.

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

어떤 아이디어?



답변

코어 덤프는 충돌 당시 프로세스의 현재 디렉토리에 작성됩니다.

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

코어 덤프가 생성되었지만 위치를 모르는 경우 프로세스를 다시 시작할 수 있습니다 (즉시 중단하지 않으면) 프로세스의 프로세스 ID는 ls -l /proc/$pid/cwd어디에서 수행하여 작업 디렉토리를 확인하십시오 $pid. 해당 링크는 해당 프로세스의 현재 작업 디렉토리를 가리 킵니다. 핵심 덤프가있을 가능성이 있습니다. 그렇지 않으면 find전체 시스템 에서 실행해야 합니다.


답변

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

/var/lib/systemd/coredump/

coredumpctl명령을 사용하여 코어 덤프를 나열 할 수 있습니다 . 참조하지 더 – 더 – 코어 덤프 – 후 – 마이그레이션 –systemd에


답변