[App 개발] MallocDebug
본문
요 근래 아주 복잡한 Scientific 루틴을 하나 작성하게 되었습니다. Memory allocation 이 계속 이루어지기 때문에 상당히 신중하게 루틴을 짜 주었음에도 불구하고 프로그램이 자꾸 Segmentation Fault 를 일으키는 현상이 계속되었습니다. 메모리 문제라는 의중은 거의 굳혔지만, 마땅히 범인을 색출할 방법이 없었지요.
아직 Visual C++ 6 을 써야 하는 관계로 crtdbg.h 함수들을 이용하기로 했습니다. CrtSetDbgFlag() 로 Leak Check 플래그를 선언한 다음 루틴을 수행해보니, 역시나 메모리가 새고 있음을 확인할 수 있었습니다. 하지만, leak 이 일어나는 메모리 어드레스를 가리키는 포인터를 자세히 살펴보았으나 메모리 정리는 정상적으로 잘 짜여 있었던 것입니다.
그래서, 금방 제가 몰래몰래 갖고 노는 맥북 프로에 소스를 옮겼지요. 지난번에 gsl 라이브러리를 인텔맥 용으로 컴파일해 둔 것이 얼마나 요긴한지... ^^;;;
그리고 Performance Tools 를 찾아보니, 역시나 애플! MallocDebug 라는 훌륭한 소프트웨어가 있더군요. 그것도 프로그램이 동작하는 실시간으로 memory leak 을 잡아내는 발군의 실력을 발휘하였습니다. 물론 유닉스/리눅스 쪽 사람들이야 별로 놀라워할 일이 아닐지 몰라도, Xcode 와 Performance Tools 의 연동은 애플만이 할 수 있는 세심함이 엿보인다 하지 않을 수 없군요.
어쨌든, 결론적으로 메모리 문제는 저의 sloppy 한 코딩 때문이었음이 바로 드러났습니다. MallocDebug 에서 잡아낸 메모리 누수를 계속 추적해 들어가니 그대로 문제를 발견할 수 있었습니다. -_-;;;
최신글이 없습니다.
최신글이 없습니다.
댓글목록 0