[zt] 코어 파일의 간단한 소개

//--------------------------------------------------------------- 1.core 파일의 간단한 설명//--------------------------------------------------------------- 프로그램이 붕괴될 때 보통 지정한 디렉터리에 core 파일을 생성합니다.core 파일은 단지 하나의 메모리 이미지(디버깅 정보 추가)로 주로 디버깅에 사용됩니다.2. 코어 파일의 생성//------------------------------------------------------------------------- 다음 명령으로 시스템의 코어 파일 생성을 막는다.
ulimit -c 0

다음 명령은 core 파일을 생성하는 옵션이 열려 있는지 확인합니다.
ulimit -a

이 명령은 모든 사용자 정의를 표시합니다. 옵션 -a는 "all"을 의미합니다.시스템 파일을 수정하여 코어 옵션을 조정할 수도 있습니다.
/etc/profile

일반적으로 코어 파일 생성을 금지하는 말이 있습니다. 일반적으로 이러한 설정은 합리적입니다. # No core files by default
ulimit -S -c 0 > /dev/null 2>&1

그러나 개발 과정에서 때때로 디버깅 문제를 위해 특정한 사용자 환경에서 코어 파일을 열어 사용자의
~/.bash_profile

더하기
ulimit -c unlimited

특정 사용자가 코어 파일을 만들 수 있도록
ulimit -c 0 

코어 파일 생성도 금지되고,
ulimit -c 1024

생성된 코어 파일의 크기가 1024kb/-----------------------------------------------------------------------------------3을 초과하지 못하도록 제한합니다.Core Dump의 코어 덤프 파일 디렉토리 및 명명 규칙 설정//---------------------------------------------------------------------------
/proc/sys/kernel/core_uses_pid

생성된 코어 파일의 파일 이름에 pid를 확장자로 추가할지 여부를 제어할 수 있습니다. 추가하면 파일 내용이 1이고, 그렇지 않으면 0입니다.
proc/sys/kernel/core_pattern

포맷된 코어 파일의 저장 위치나 파일 이름을 설정할 수 있습니다. 예를 들어 원래 파일의 내용이 코어-%e인 경우 이렇게 수정할 수 있습니다.
echo "/corefile/core-%e-%p-%t" > core_pattern

생성된core 파일을/corefile 디렉터리에 저장합니다. 생성된 파일의 이름은
core-   -pid-   

매개변수 목록은 다음과 같습니다.
   %p - insert pid into filename   pid

    %u - insert current uid into filename  uid
    %g - insert current gid into filename  gid
    %s - insert signal that caused the coredump into the filename  core
    %t - insert UNIX time that the coredump occurred into filename  core unix
    %h - insert hostname where the coredump happened into filename 
    %e - insert coredumping executable name into filename 

//--------------------------------------------------------------- 4.코어 파일 사용//--------------------------------------------------------- 코어 파일이 있는 디렉토리에 입력:
gdb -c core

GNU의 디버거를 시작해서 코어 파일을 디버깅하고, 이 코어 파일을 생성하는 프로그램 이름을 표시하며, 이 프로그램을 중단하는 신호 등을 표시합니다. 어떤 프로그램이 코어 파일을 생성했는지 알고 있다면, 예를 들어 My 서버가 충돌해서 코어를 생성합니다.12345, 이 명령으로 디버깅:
gdb -c core MyServer

다음은 어떻게 gdb의 사용을 배워야 합니까//-----------------------------------------------------------------------------5.작은 방법으로 코어 파일 생성을 테스트합니다//--------------------------------------------------------------------- 명령을 직접 입력합니다.
kill -s SIGSEGV $$

좋은 웹페이지 즐겨찾기