"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
👨💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.
리눅스 (Linux) 에서 코어 덤프 파일을 생성하기 위한 설정은 어떻게 해야 하는지 간략히 알아보았습니다.
질문 >
리눅스 (Linux) 에서 코어 덤프 파일을 생성하기 위한 설정은 어떻게 해야 하나요?
답변 >
리눅스에서 코어 덤프 파일을 생성하기 위한 설정은 아래 단계를 따르면 됩니다:
1. 코어 덤프 활성화
코어 덤프 파일 생성을 활성화하려면 ulimit 명령어를 사용하여 코어 파일 크기 제한을 설정해야 합니다.
현재 세션에서 활성화:
ulimit -c unlimited
변경사항 확인:
ulimit -c
- 결과가 unlimited이면 코어 덤프가 활성화된 것입니다.
- 다른 값이 출력되면 해당 크기(바이트 단위)로 제한됩니다.
시스템 전체에 적용하려면:
/etc/security/limits.conf 파일 또는 관련 디렉터리(예: /etc/security/limits.d/)의 설정 파일에 아래 내용을 추가합니다:
* soft core unlimited
* hard core unlimited
2. 코어 덤프 저장 경로 설정
코어 덤프 파일의 저장 경로와 이름 형식을 설정하려면 /proc/sys/kernel/core_pattern 파일을 수정해야 합니다.
현재 설정 확인:
cat /proc/sys/kernel/core_pattern
설정 변경:
/etc/sysctl.conf 또는 /etc/sysctl.d/에 설정을 추가합니다. 예:
echo '/tmp/core-%e.%p.%t' | sudo tee /proc/sys/kernel/core_pattern
위 명령은 코어 덤프 파일을 /tmp 디렉터리에 저장하며, 파일명에 실행 파일 이름(%e), 프로세스 ID(%p), 타임스탬프(%t)를 포함합니다.
- 자주 사용하는 패턴:
- %e: 실행 파일 이름
- %p: 프로세스 ID
- %t: 타임스탬프
- %u: 사용자 ID
- %g: 그룹 ID
3. 코어 덤프 설정 확인
변경된 설정이 제대로 적용되었는지 확인하려면 다음을 사용합니다:
/proc/sys/kernel/core_pattern 확인:
cat /proc/sys/kernel/core_pattern
코어 파일 크기 제한 확인:
ulimit -c
4. 코어 덤프 테스트
테스트용 프로그램을 실행해 코어 덤프를 확인할 수 있습니다. 예를 들어, 의도적으로 세그먼테이션 오류(segmentation fault)를 발생시키는 C 프로그램을 실행합니다.
예제 코드:
#include <stdio.h>
int main() {
int *p = NULL;
*p = 42; // Null pointer dereference
return 0;
}
컴파일 후 실행하여 코어 파일이 생성되었는지 확인합니다:
gcc -o core_test core_test.c
./core_test
5. 디버깅
코어 덤프를 디버깅하려면 gdb를 사용할 수 있습니다:
gdb <프로그램 경로> <코어 파일 경로>
참고
- 보안 이유로, 일부 배포판(예: Ubuntu)은 기본적으로 코어 덤프 생성을 비활성화하거나 특정 사용자만 허용합니다.
- 특정 프로세스에서 코어 덤프를 생성하려면 해당 프로세스를 시작하기 전에 ulimit를 설정하거나 시스템 전체 설정을 변경해야 합니다.
🎬 유튜브 채널 🎬
위로그@WiLog
📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리(Willee) 입니다. 📢 위로그@WiLog 는 자기계발을 목적으로 하는 채널 입니다. 📢 오늘도 즐겁게~ 자신을 위한 계발을 함께 해보아요~ d^_^b 📌
www.youtube.com
🎬 치지직 채널 🎬
위로그 채널 - CHZZK
지금, 스트리밍이 시작됩니다. 치지직-
chzzk.naver.com
'Linux' 카테고리의 다른 글
👨💻 [Linux] 리눅스 서버에 TCP 소켓 연결이 붙었다 끊어졌다 할 경우 확인해볼 수 있는 상황은 뭐가 있나요? (2) | 2024.10.04 |
---|---|
[Anaconda] conda update 오류 CondaHTTPError: HTTP 000 CONNECTION FAILED for url (0) | 2019.01.19 |
CentOS 7 에 GitLab 설치하기 - 05. GitLab 설치 마무리 (0) | 2017.01.31 |
CentOS 7 에 GitLab 설치하기 - 04. GitLab 설치하기 / 패키지 (0) | 2017.01.31 |
CentOS 7 에 GitLab 설치하기 - 03. GitLab 설치하기 / 종속성 (0) | 2017.01.31 |