Busybox에서 코어 덤프를 생성하기 위해 실행 파일을 실행하는 초기화 스크립트에서 아래 매개 변수를 추가 할 수 있습니다. 따라서 소프트웨어를 초기화하고 환경 변수를 내보낼 때마다 아래 줄을 스크립트에 복사하고 충돌이 발생할 경우 코어를 덤프 할 수 있습니다.
Busybox에서 코어 덤프의 위치를 설정하려면 proc 파일 시스템을 사용하여 코어 파일 경로를 설정할 수 있습니다. 예를 들어, 코어 덤프를 원하는 경우 /tmp/crash/corefiles
:
mkdir -p /tmp/crash/corefiles
chmod 775 /tmp/crash/corefiles
echo "/tmp/crash/corefiles/%e.%s.core" > /proc/sys/kernel/core_pattern
변수는 다음과 같습니다.
% e 는 파일 이름입니다.
% g 는 프로세스가
% p 에서 실행되고있는 gid 입니다.
% s 는 프로세스의 pid입니다. % s 는 덤프를 일으킨 신호입니다.
% t 는 덤프가 발생한 시간입니다.
% u 는 프로세스가 실행중인 uid입니다.
또한 코어 파일 크기를 설정해야합니다. 아래 명령은 코어 파일 크기를 무제한으로 설정합니다.
ulimit -c unlimited
이제 프로세스 내의 각 스레드에 설정된 코어 파일 크기를 확인하려면 다음을 사용하여 확인할 수 있습니다.
cat /proc/<PID>/limits
위 명령의 출력 :
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size unlimited unlimited bytes
Max open files 10000 10000 files
Max address space unlimited unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 31868 31868 processes
Max locked memory 65536 65536 bytes
Max file locks unlimited unlimited locks
Max pending signals 31868 31868 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
위 출력에서 볼 수 있듯이 최대 코어 파일 크기는 무제한으로 설정되어 있습니다.
자세한 내용은이 링크를 방문하십시오.
리눅스 응용 프로그램 디버깅 기법 / 코어 파일