GUI 없이 heaptrack으로 메모리 누수 확인하기

sycho·2023년 7월 4일
0

cs-tips

목록 보기
3/16

C++로 작성된 프로그램을 수정하는 개별연구를 진행하다가 메모리 누수를 프로파일링 해야 할 일이 생겼었는데, 이때 사수님이 heaptrack이라는 프로그램을 추천해줬다.

한글로 된 heaptrack 사용법 1
한글로 된 heaptrack 사용법 2

위 링크를 가지고 사용법을 공부했었는데 도움이 많이 되었었다. 한가지 빼고...

당시 개별연구를 연구실에 있는 원격 서버에 SSH 연결을 하고 거기에 프로젝트를 저장해서 진행하고 있었는데, 이 때문에 GUI가 하나도 없었다.

물론 위 링크들 중 2번째 링크에 들어가보면 GUI 없이 콘솔로 결과물을 확인하는 방법이 나와 있다. 그런데 꽤 치명적인 부분이 생략되어 있는데 2번째 링크의 방식대로 하면 메모리 누수가 어디에서 일어나고 있는지를 확인할 수가 없다.

정작 메모리 누수가 어디에서 이루어지고 있는지를 확인하려고 저걸 쓰는걸 생각하면... 난감할 수 밖에 없다.

해법은 꽤 간단한데

ubuntu heaptrack_print manpage

위 링크에서 보면 알겠지만 -l option의 값을 1로 설정하면 메모리 누수가 어디서 발생했는지가 나온다.
왜 누수 프로파일러인데 default가 누수 backtrace를 안보여주는 걸로 되어있는지는 넘어가자.
혹시 heaptrack을 콘솔로 쓰는데 누수 관련 정보가 안나오면 참고바란다.

profile
CS 학부생, 핵심 관심 분야 : Embed/System/Architecture/SWE

0개의 댓글