메모리 리스크가 발생하는지 조사하는 방법이 궁금합니다.

익명 사용자의 이미지


지금 DB 비슷한 서비스를 제공하는 서버 프로그래밍을 하고 있습니다.

메모리를 많이 다루다 보니 아무래도 메모리 리스크가 걱정이 되는데요.

메모리 리스크가 발생하는지 조사하는 방법이 있는지 알고 싶습니다.

물론 돌려보다가 메모리가 점점 줄면 알 수 있겠지만, 지금 개발 중인
단계에서 미리 조사해 볼 수 있는 방법이 없는지 궁금합니다.

익명 사용자의 이미지

왜 없겠습니까 ?
단지 릭인지 아닌지 구분은 안되지만 !
필요하면 하나 만드시면 되잖아요.
malloc자체를 추적하면서 정보를 관리하면
간단히 추적 가능한데요. 그렇게 만들어서 debug시에만 사용하고
포팅시에는 동작하지 않게 하면 되잖아요.
여기 SUN에서 사용하는 예를 보여드리지요.

struct mallinfo mallinfo(void);
이 함수를 사용하면 현재 얼마 만큼의 malloc이 일어 나는지
알수 있답니다.
양념으로 int mallopt(int cmd, int value); 도 한번 쓰보시지요.
이들을 사용시에는
반드시 #include 을 사용하고 컴파일시에 -lmalloc을
해야 합니다.
사용법은 man watchmalloc을 보면 자세히 설명 되어 있습니다.