2014년 12월 18일 목요일

환경변수 MALLOC_CHECK_ 설정하기

glibc

  • Red Hat 엔터프라이즈 리눅스 4에 포함된 버전 glibc는 데이터 손상을 최대할 빨리 검색하여 방지할 수 있도록 내부 정상 감시 기능을 추가로 수행합니다. 데이터 손상이 감지되면 다음과 같은 메시지가 표준 오류로 나타날 것입니다 (만일 표준 오류(stderr)이 열려있지 않은 경우에는 syslog으로 기록됩니다):

    *** glibc detected *** double free or corruption: 0x0937d008 ***
    또는
    *** glibc detected *** invalid pointer free: 0x0937d008 ***

    이 오류 메시지를 생성하는 프로그램은 디폴트로 제거(kill)됩니다; MALLOC_CHECK_ 환경 변수를 이용하여 오류 메시지 생성 여부를 선택하실 수 있습니다. 다음과 같은 설정이 가능합니다:
    • 0 — 오류 메시지를 생성하지 않고, 프로그램을 제거하지 않음
    • 1 — 오류 메시지를 생성하지만, 프로그램을 제거하지 않음
    • 2 — 오류 메시지를 생성하지는 않지만, 프로그램은 제거함 <== 기본값
    • 3 — 오류 메시지를 생성하고 프로그램을 제거함

    알림

    만일 MALLOC_CHECK_ 변수를 0이 아닌 다른 값으로 설정할 경우, glibc는 기본 설정 보다 광범위한 검사를 수행하므로결국 시스템 성능에 영향을 미칠 수 있습니다.


** 쉘 설정 파일에 setenv MALLOC_CHECK_  0 으로 세팅한다.


Bourne 쉘의 경우 
MALLOC_CHECK_=0;
export MALLOC_CHECK_

Bash 쉘의 경우 
export MALLOC_CHECK_=0

csh, tcsh 쉘의 경우 
setenv MALLOC_CHECK_ 0

댓글 없음:

댓글 쓰기