이 글에서는 리눅스에서 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 ***