Nice programing

내 Linux C ++ 프로그램에서 코어 덤프를 활성화하는 방법

nicepro 2020. 10. 9. 12:24
반응형

내 Linux C ++ 프로그램에서 코어 덤프를 활성화하는 방법


내 프로그램은 C ++로 작성되었습니다. -g3 -O0 -ggdb 플래그를 사용하여 gcc로 컴파일되었습니다. 충돌이 발생하면 코어 덤프를 열고 싶습니다. 코어 덤프 파일을 생성합니까, 아니면 프로그램 자체에서 또는 실행되는 컴퓨터에서 코어 덤프 생성을 활성화하기 위해 뭔가를해야합니까? 이 파일이 생성되는 위치와 이름은 무엇입니까?


을 설정해야합니다 ulimit -c. 이 매개 변수가 0이면 코어 덤프 파일이 생성되지 않습니다. 그러니 이렇게 : ulimit -c unlimited모든 것이 올바른지 확인하십시오 ulimit -a. 코어 덤프 파일은 애플리케이션이 예를 들어 부적절한 작업을 수행했을 때 생성됩니다. 내 시스템의 파일 이름은입니다 core.<process-pid-here>.


프로그램 내에서 이렇게 할 수 있습니다.

#include <sys/resource.h>

// core dumps may be disallowed by parent of this process; change that
struct rlimit core_limits;
core_limits.rlim_cur = core_limits.rlim_max = RLIM_INFINITY;
setrlimit(RLIMIT_CORE, &core_limits);

기본적으로 많은 프로필은 기본적으로 0 코어 파일 크기로 설정됩니다. 일반 사용자는 프로필로 무엇을해야할지 모르기 때문입니다.

ulimit -c unlimited프로그램을 실행하기 전에 시도하십시오 .

참고 URL : https://stackoverflow.com/questions/2919378/how-to-enable-core-dump-in-my-linux-c-program

반응형