ulimit를 사용하여 무제한 코어 파일 크기를 활성화했습니다.
ulimit -a
core file size (blocks, -c) unlimited
...
코어 덤프를 트리거했다고 생각하지만 내 집, var / ... 등에서 코어 파일을 찾을 수 없습니다 ...
Ubuntu가 코어 덤프 위치를 구성하는 위치를 알고 있습니까?
ulimit를 사용하여 무제한 코어 파일 크기를 활성화했습니다.
ulimit -a
core file size (blocks, -c) unlimited
...
코어 덤프를 트리거했다고 생각하지만 내 집, var / ... 등에서 코어 파일을 찾을 수 없습니다 ...
Ubuntu가 코어 덤프 위치를 구성하는 위치를 알고 있습니까?
답변:
나는 이것이 특정 우분투 것보다 더 리눅스 커널 일이라고 생각합니다. 체크 아웃
cat /proc/sys/kernel/core_pattern
/proc/sys/kernel/core_pattern어디에서 파일을 찾을 수 있는지 명령을 따르면 명확하지 않습니다 .
cd /usr/share/apport/apport작동하지 않습니다.
기본적으로 Ubuntu 커널은 apport를 사용하여 코어 덤프를 기록하도록 구성되어 있습니다. 덮어 쓰면이를 무시할 수 있습니다 . 자세한 내용 /proc/sys/kernel/core_pattern은 "코어 덤프 파일 이름 지정"섹션 man core을 확인하십시오. 예를 들면 다음과 같습니다.
echo '/tmp/core.%e.%p.%t' | sudo tee /proc/sys/kernel/core_pattern
Apport는에 코어 덤프를 작성 /var/crash/_path_to_program.userid.crash하지만 기본 우분투 apt 저장소에서 설치된 응용 프로그램에 대해서만 그렇게합니다.
apport에 대한 추가 정보 : https://wiki.ubuntu.com/Apport
Ubuntu 16.04.3 LTS에서 핵심 덤프는 다음 위치에있었습니다.
/var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000
따라서에서 실행하려면 다음을 실행할 gdb수 있습니다.
apt install gdb
gdb /path/to/your/binary/application-name /var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000