게시물 1,376건
   
커널 코어덤프 설정 & 분석
글쓴이 : 최고관리자 날짜 : 2014-07-30 (수) 10:14 조회 : 10729
글주소 :
                                
참고 : 


코어덤프 
특정 시점에 RAM에 들어있는 내용을 종이에 인쇄하거나, 또는 HDD와 같은 보다 영구적인 매체에 복사해 두는 행위를 말한다.
어떤 사람들은 이것을 램에 대한 스냅사진이라고 말하며 코어덤프는 주로 프로그램을 디버깅하기 위한 목적으로 행해지지만, 요즘에는 고급 언어를 이용해 프로그래밍을 하면서 인터랙티브 형식으로 디버깅을 하는 추세에 따라, 문제 해결을 위해 코어 덤프를 필요로 하는 경우는 줄어들고 오히려 운영체제를 유지보수하고 때로 그안에 있는 문제들을 디버깅 해야 하는 시스템 프로그래머들에 의해 사용되는 경우가 많다.

코어덤프는 대체로 여러개의 줄로 구성된 정형화된 보고서의 형태로 되어있으며 이들은 각 메모리 위치와 그위치에 저장된 값을 16진수로 보여준다. 
부가정보를 통해 코어 덤프가 시작되던 바로 그시기에 수행되었던 명령을 정확히 알수 있다.

core dumpd 는 프로그램의 비정상적인 종료(Segmentation Fault등)시 커널에서 그때 상황을 덤프시킨 파일이다. 리눅스는 기본적으로 코어 덤프를 하지 않는데 이를 활성화 시키려면 다음과 같다.


OS : Fedora18 x86_64
core dump 사이즈 확인
# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 254704
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

파일사이즈 무제한
# ulimit -c unlimited

커널파라미터 수정
# vim /etc/sysctl.conf
kernel.core_pattern = /var/log/core.%e
kernel.core_uses_pid = 1

%%  A single % character
%p  PID of dumped process 
%u  real UID of dumped process 
%g  real GID of dumped process 
%s  number of signal causing dump
%t  time of dump (seconds since 0:00h, 1 Jan 1970)
%h  hostname (same as ’nodename’ returned by uname(2))
%e  executable filename


적용
# systcl -p

# cat /proc/sys/kernel/core_pattern
/var/log/core.%e
# cat /proc/sys/kernel/core_pipe_limit
0
# cat /proc/sys/kernel/core_uses_pid
1
# selinuxenabled && echo enabled || echo disabled
# ulimit -c
0

# yum install --enablerepo=fedora-debuginfo crash kernel-debuginfo


crash 명령

sys - 시스템의 일반적인 정보를 출력해 준다.
bt - Backtrace 명령. 스택의 내용들을 순차적으로 출력해준다.
ps - Process list 출력.
free - Memory 및 스왑 상태 출력.
mount - 마운트 상태 출력
irq - 각 장치의 ( irq ) 상태를 출력.
kmem - 메모리 상태 출력 ( kmalloc, valloc 등 메모리 할당 상태도 보여줌 )
log - dmesg 의 내용을 출력.
mod - 로딩된 모듈 리스트 출력.
net - Network 상태 출력.
runq - 실행중인 task 리스트 출력.
task - 작업목록 출력.
rd - 메모리 번지수에 대한 상세정보 출력.
foreach - 모든 task, process 등 디버깅 정보에 대한 상세한 출력이 가능함.
set - 설정된 주소 및 PID 등을 기본 컨텍스트로 설정.
struct - 구조화된 메모리 내부의 변수들을 출력해 준다.
files - task 가 열고있는 파일디스크립터들을 출력해준다.

이름 패스워드
비밀글 (체크하면 글쓴이만 내용을 확인할 수 있습니다.)
왼쪽의 글자를 입력하세요.
   

 



 
사이트명 : 모지리네 | 대표 : 이경현 | 개인커뮤니티 : 랭키닷컴 운영체제(OS) | 경기도 성남시 분당구 | 전자우편 : mojily골뱅이chonnom.com Copyright ⓒ www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.