우분투 14.04는 어디에서 코어 파일을 드롭합니까?


20

ulimit를 사용하여 무제한 코어 파일 크기를 활성화했습니다.

ulimit -a
core file size          (blocks, -c) unlimited
...

코어 덤프를 트리거했다고 생각하지만 내 집, var / ... 등에서 코어 파일을 찾을 수 없습니다 ...

Ubuntu가 코어 덤프 위치를 구성하는 위치를 알고 있습니까?


@djf OP는 코어 덤프를 일으키는 프로그램을 지정하지 않았습니다. 프로그래머 코드가 아닐 수 있습니다. 우리가 아는 모든 것이 화합 일 수 있습니다.
Rich Homolka 2016 년

1
슈퍼 유저 질문은 어떻습니까? 프로그래머 만 사용하는 디버거를 실행하는 것입니다. 다시 SO로 마이그레이션해야합니다.
호머 6

답변:


7

나는 이것이 특정 우분투 것보다 더 리눅스 커널 일이라고 생각합니다. 체크 아웃

cat /proc/sys/kernel/core_pattern

핵심 파일 매뉴얼 페이지를 확인 하십시오


13
파일을 어디에 둘 것인지는 알려주지 않습니다. Ubuntu 14.04라는 질문입니다. /proc/sys/kernel/core_pattern어디에서 파일을 찾을 수 있는지 명령을 따르면 명확하지 않습니다 .
jcalfee314

1
저에게, core_pattern 커널 의사 파일은 'apport'라는 프로그램을 참조합니다. 그래서 여전히 내 덤프 코어를 검색합니다. :(
gojomo

1
apport는 일반적으로 배포판에 다시보고하는 표준 Linux 데스크탑 코어 핸들러입니다.
kkron

이 폴더를 여는 방법? cd /usr/share/apport/apport작동하지 않습니다.
mrgloom

32

기본적으로 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


비 패키지 프로그램에 대한 코어 덤프도 작성 하려면 다음 내용으로 ~ / .config / apport / settings 라는 파일을 작성하십시오 . [main] unpackaged = true
greuze

/ proc / sys / kernel / core_pattern 수정은 Ubuntu 18.04에서 작동하지 않습니다
greuze

1

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.