프로그래밍 강의/프로그래밍 정보

메모리 누수 검사

wnsrn3436 2013. 2. 7. 18:15

 

메모리 누수란 무엇일까요?

 

보통 우리가 함수에서 선언하여 쓰는 지역변수는 함수가 끝나면 사라지게 되어있습니다.

지역변수가 속한 곳을 스택 공간이라고 부르지요.

 

우리가 메모리를 제어할 때 사용하는 malloc, new 등은 힙 공간에 자리 잡으면서, 할당을 하면 해제를 시키게끔 프로그래머에게 권하고 있습니다.

이런 해제가 제대로 이뤄지지 않으면 프로그램이 종료되어도 해당 메모리 공간은 계속 차지하게 되고 이것이 쌓이고 쌓여서 메모리 부족현상을 일으킬 수 있습니다.

 

* 비슷한 맥락의 '버퍼 오버플로우' 도 있습니다. 이것은 사용자가 설정한 범위 밖으로 메모리를 침범하는 행위를 일컫습니다.

 

아무튼, 자신의 프로그램에서 메모리 누수가 발생한 것을 보다 손쉽게 알고 싶다면 여러 가지 방법이 있습니다.

디버거를 하던가 라이브러리 파일을 이용하면 되지요.

 

현재 올린 첨부 파일은 디버거를 해줌으로써, 메모리 누수가 일어났는지 아닌지를 알려줍니다.

사용법은 아래의 링크에 게시되어 있습니다.

 

GCC도 잘 됩니다.

 

DebugNew(2011.09.14).7z

 

첨부 파일 원문: http://www.gilgil.net/9272

Comments