우분투 16.04LTS에서 코어 덤프는 어디에 있습니까?


14

나는해야 할 일을하는 C ++ 프로그램을 가지고 있지만 끝에 충돌하고 코어 덤프를 생성하기 때문에 포인터에 문제가 있어야합니다. 내 문제는 코어 파일을 찾을 수 없으므로 디버깅 할 수 없다는 것입니다.

나는 시도했다

ulimit -c unlimited
ulimit -a

이제 파일의 크기가 무제한으로 설정되었지만 여전히 핵심을 찾을 수 없습니다. 여기에 작성된 모든 폴더에서 시도 했지만 여전히 핵심 파일이 생성되지 않은 것 같습니다.

어디서 찾을 수 있습니까?


현재 디렉토리 또는/var/crash
waltinator

4
대부분의 경우 @waltinator이지만 /var/log/apport.log현대 우분투 버전은 Apport를 사용하기 때문에 때로는 명확하지 않은 방식으로 코어 덤핑을 방해 할 수 있기 때문에 확인이 필요합니다 . 자세한 내용은 stackoverflow.com/a/18368068/1772379 를 참조하십시오 .
벤 존슨

답변:


12

우분투에서 코어 덤프는 Apport에 의해 처리되며 에 위치 할 수 있습니다 /var/crash/. 그러나 안정적인 릴리스에서는 기본적으로 비활성화되어 있습니다.

Apport를 활성화하려면 다음을 실행하십시오. sudo systemctl enable apport.service또는 sudo service apport start.


비활성화하려면 다음을 실행하십시오. sudo systemctl disable apport.service또는 sudo service apport stop일반 코어 덤프 방법으로 돌아가십시오. 참조 : 내가 사용하거나 사용하지 않도록 설정 Apport 어떻게해야합니까? .

영구적으로 비활성화하려면 /etc/apport/crashdb.conf파일을 편집 하고 다음 줄을 주석으로 처리하십시오.

'problem_types': ['Bug', 'Package'],

#줄의 시작 부분에 해시 기호 ( )를 추가하여

충돌보고를 비활성화하려면 (다시 정상으로) 해시 기호 (이전과 동일)를 제거하십시오.


core_pattern커널이 코어 덤프를 처리하는 방법을 확인할 수도 있습니다 .

$ cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c

따라서 코어 파일도로 비활성화되어 ulimit있으며 apport여전히 충돌을 캡처합니다.

또한보십시오:


4

그 googlin '의 경우 : (내 경우에는 Ubuntu 16.04 및 18.04 및 사용자 정의 앱) /var/crash이 여전히 비어 있으므로 핵심 생성을 처리하는 빠른 방법 (예 : 관련 ulimit 내장 설정 사용 )

sudo sysctl -w kernel.core_pattern=core.%u.%p.%t # to enable core generation

systemctl restart apport # to restore default apport settings
# which, by the way, were "|/usr/share/apport/apport %p %s %c %d %P" (without quotes)


출처 :


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