얼마 전에 StackOverflow에 이 질문을 올렸는데 이제서야 이 커뮤니티를 발견했고 이 사이트가 적어도 이 질문에 똑같이 적합한 사이트라고 생각합니다.
/proc/sys/kernel/core_pattern
abrt-ccpp.service가 Linux PC에 설치되면 코어 파일의 위치와 파일 이름 패턴을 지정하는 파일을 대체/덮어씁니다(둘 다 읽었지만 어느 것이 사실인지는 확실하지 않음) .
질문:
abrt-ccpp.service 를 실행할 때 해당 열 아래에 보고하는 systemctl
이유는 무엇입니까 ? 다음의 조합을 이해하지 못합니다 . 서비스가 "활성"/활성/실행 중입니까?exited
SUB
active
exited
> systemctl
UNIT LOAD ACTIVE SUB
abrt-ccpp.service loaded active exited ...
질문:
코어 파일은 어디에 생성되나요? 나는 다음을 생성하기 위해 이 프로그램을 작성했습니다 SIGSEGV
.
#include <iostream>
int main(int argc, char* argv[], char* envz[])
{
int* pInt = NULL;
std::cout << *pInt << std::endl;
return 0;
}
다음과 같이 컴파일하고 실행합니다.
> g++ main.cpp
> ./a.out
Segmentation fault (core dumped)
하지만 핵심 파일이 생성된 위치를 찾을 수 없습니다.
내가 시도한 것:
- 내 디렉토리와 같은 디렉토리를 찾으세요
main.cpp
. 코어 파일이 존재하지 않습니다. /var/tmp/abrt/
아래 댓글 때문에 봤습니다/etc/abrt/abrt.conf
. 코어 파일이 존재하지 않습니다.
...
# Specify where you want to store coredumps and all files which are needed for
# reporting. (default:/var/tmp/abrt)
#
# Changing dump location could cause problems with SELinux. See man_abrt_selinux(8).
#
#DumpLocation = /var/tmp/abrt
...
/var/spool/abrt/
댓글 때문에 본이 링크. 코어 파일이 존재하지 않습니다.- 기존 디렉터리를 편집
/etc/abrt/abrt.conf
하고 주석 처리를 해제한 후 설정합니다 .DumpLocation = ~/foo
그런 다음 abrt-hook-ccpp(sudo service abrt-ccpp restart
)를 다시 시작하고 다시 실행하십시오a.out
. 코어 파일이 생성되지 않았습니다.~/foo/
ulimit -c
확인 후 보고서는 다음과 같이 말했습니다unlimited
.
그 밖에 무엇을 시도해야 할지, 어디를 봐야 할지 모르겠습니다.
도움이 된다면 제가 가지고 있는 정보는 다음과 같습니다 /proc/sys/kernel/core_pattern
.
> cat /proc/sys/kernel/core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
abrt-hook-ccpp 서비스의 작동 방식과 핵심 파일이 생성되는 위치를 설명하는 데 도움을 줄 수 있는 사람이 있습니까? 감사해요.
답변1
한 가지 가능성은 구성 파일의 행을 변경해야 한다는 것입니다./etc/abrt/abrt-action-save-package-data.conf
ProcessUnpackaged = no
그렇지 않으면 abrtd는 yes
패키지 관리자( dnf
또는 기타) apt
가 설치한 프로그램에서만 핵심 파일을 캡처 합니다. 코어 덤프를 사용 abrt-gui
하거나 찾으십시오.abrt-cli
답변2
meuh가 말한 것 외에도 abrt 데몬이 충돌 정보를 수집한 후(위 구성 파일을 수정한 후 다시 시작) abrt-cli 또는 abrt-gui를 사용하여 해당 정보가 어디에 있는지 확인할 수 있습니다.
# abrt-cli -a ls
id xxxxxxxxxxxxxxxxxx
reason: MYPROGRAM killed by SIGABRT
time: Thu 10 Jan 2019 11:48:07 AM CET
cmdline: ./myExecutable
uid: 1001
Directory: /var/spool/abrt/ccpp-2019-01-10-11:48:07-17559
Run 'abrt-cli report /var/spool/abrt/ccpp-2019-01-10-11:48:07-17559' for creating a case in Red Hat Customer Portal
제공된 디렉토리에서 coredump
파일을 찾을 수 있습니다.