반응형
내 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
반응형
'Nice programing' 카테고리의 다른 글
두 데이터베이스 간의 MySQL 데이터베이스 동기화 (0) | 2020.10.10 |
---|---|
Visual Studio 2008 테스트 프레임 워크에서 배열이 동일한 지 확인 (0) | 2020.10.09 |
외래 키로 복합 키 (0) | 2020.10.09 |
grep 출력에 파일 이름 및 줄 번호 표시 (0) | 2020.10.09 |
Python Regex는 즉시 그룹을 대체합니다. (0) | 2020.10.09 |