Linux Core dump 파일 분석 방법(file, gdb)
실행중인 프로세스가 갑자기 죽으며 Core 파일이 생성
Core 파일이 계속 생성되는 경우 Disk Full로 장애 발생
Core 파일 분석 후 이슈를 해소하여 시스템 안정성 확보
Core 파일 생성을 위한 설정
1. ulimit -c unlimited
2. ulimit -a 로 확인
- 'core file size (blocks, -c) unlimited' 면 설정 완료
- 만약 core file의 size를 제한하고 싶다면 'unlimited'가 아닌 kb단위의 size를 지정해주면 된다.
분석 방법
1. debug 대상 파일 확인
프로그램이 여러개가 돌고 있는 환경이라면 특정 dump가 어떤 프로그램이 만든것인지 확인 필요
file [core dump file] |
* /proc/sys/kernel/core_pattern 에서 정의된 형태로 생성
%p : pid
%u : uid
%g : gid
%s : signal number
%t : dump time(unix)
%h : hostname
%e : process
2. debugging
gdb [core발생 프로그램] [core file] |
이후, gdb interface로 화면이 전환되면서 core에 관한 간략한 정보가 뜬다.
그리고 다음의 command를 입력하면 상세한 정보를 확인하는데 도움을 준다.
- bt(back trace) : core 발생 직전의 call stack 확인
- bt full : 전체 call stack 확인
- f[스택프레임 번호] : 특정 stack 확인
- list : stack의 code 보기
- info local : stack의 수행 당시 변수 값 확인
- info arg : stack의 argument 확인
- where : 간략화
의심되는 stack frame 분석
info frame : 보다 상세한 정보 제공
stack frame at 0x : 해당 함수 sp
called by frame at 0x : 해당 함수를 호출한 함수의 SP(ex. main)
Arglist at 0x : 해당 함수가 호출하는 함수의 bp
args : 인자 정보
saved registers : rip, ebp..
(EX) (gdb) f [frame num] + (gdb) info frame
(gdb) info frame [frame num]
해당 stack의 argument/local value 확인
info frame 보다 간결하지만 인간친화적
(EX) (gdb) info arg
(gdb) info local
3. process debugging
gdb [프로세스명] [pid] |
실행중인 프로세스를 gdb로 붙어서 확인
참고
https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=hymne&logNo=221841282483
'Linux' 카테고리의 다른 글
SSH 접속 에러 : Permission denied (publickey,gssapi-keyex,gssapi-with-mic). (0) | 2023.02.28 |
---|---|
Linux 파일 개수 및 디렉토리(폴더) 개수 확인 (0) | 2021.08.24 |
CentOS Perl 설치시 "Can't locate ExtUtils/MakeMaker.pm" 해결 방법 (0) | 2021.08.20 |
Linux 시작 프로그램 설정 ( chkconfig ) (0) | 2021.07.20 |
CentOS cp 강제로 덮어쓰기 (0) | 2021.07.19 |