Type Here to Get Search Results !

리눅스에서 malloc_check 옵션 사용

이 글에서는 리눅스에서 malloc_check 옵션을 사용하여 메모리 문제를 확인하는 법에 대해서 설명합니다. 

리눅스 C 언어 malloc_check


리눅스에서 malloc_check 옵션 사용


리눅스에서 malloc_check 옵션을 사용하면 malloc 및 기타 메모리 할당 함수들과 관련된 메모리 문제를 감지하고, 디버깅할 수 있습니다. 이 옵션은 MALLOC_CHECK_라는 환경 변수를 설정하여 사용할 수 있습니다.


다음의 방법으로 malloc_check션을 사용할 수 있습니다.


터미널을 열고, export 명령어를 사용하여 MALLOC_CHECK_ 환경 변수를 설정합니다. 변수 값은 일반적으로 0, 1, 2, 3 중 하나입니다.

0: 에러 메시지를 출력하지 않으며, 문제가 있는 메모리를 해제하지 않습니다.

1: 에러 메시지를 출력하지만, 문제가 있는 메모리를 해제하지 않습니다.

2: 에러 메시지를 출력하고, 문제가 있는 메모리를 해제합니다.

3: 에러 메시지를 출력하고, 문제가 있는 메모리를 해제한 후, 프로그램을 종료합니다.

예를 들어, 에러 메시지를 출력하고 메모리 누수를 방지하기 위해 다음과 같이 변수를 설정할 수 있습니다.


export MALLOC_CHECK_=2

메모리를 잘못 접근시 아래와 같은 에러를 반환합니다.
*** glibc detected *** double free or corruption: 0x0937d3x8 ***
또는
*** glibc detected *** invalid pointer free: 0x0937d3x8 ***