lldb로 leak발생한 line 디버깅하기

JaeGu Jeong·2022년 11월 4일
0

Check the line where the leak

누수예제 (main.cpp)


메모리를 수동으로 관리하다보면 메모리 누수때문에 골치아픈경우를 만나게 된다.
무한루프를 걸고 leaks프로그램으로 누수여부를 확인 할 수는 있지만, 소스코드의 어느줄에서 누수가 일어났는지는 찾기 힘들 수 있다.
이때, lldb와 leaks를 함께 이용하면 어느줄에서 메모리 누수가 일어나는지 알 수 있다.

1. "lldb <디버깅할 프로그램>"이런 형식으로 lldb를 실행한다.

2. 브레이크포인트 지정하기 "b main"

3. "run" 명령어로 프로그램을 실행한다.

만약 인자가 필요하다면 "run [args]" 뒤에 인자를 붙여준다.

4. 새 터미널을 더 열어서 "leaks <프로그램>"를 입력하고 누수를 확인한다.

5. 다시 lldb가 열린 터미널에서 "n"을 입력해서 다음 줄로 넘어가고 다른 터미널에서 4번과 같이 leaks로 검사한다.

누수가 발생한 지점을 만날 때까지 반복한다.

6. leak이 발생했다면 lldb가 현재 가리키는 부분(노랑색 화살표)의 이전 포인트에서 누수가 발생한 것이다. 디버깅 끝.


profile
BackEnd Developer

0개의 댓글