답변:
소스 코드를 변경할 수 있다면 Dmalloc 은 훌륭합니다. 해제 된 포인터와 (디버깅 기호로 작성된 코드의 경우) 정확히 할당 된 행을 나열합니다.
당신이 할 수 없다면, Valgrind 는 그런 종류의 표준입니다. 나는 일반적으로 Valgrind를 사용하기가 다소 어렵다는 것을 알지만 더 많은 기능을 가지고 있으며 코드에 dmalloc 호출을 추가하지 않습니다.
valgrind의 Massif 는 메모리 누수를 찾는 가장 좋은 방법 중 하나입니다. 의심스러운 코드를 반복하거나 프로그램을 충분히 오래 실행하고 ms_print로 결과를 덤프하십시오. 일반적으로 호출 스택은이를 해결하기에 충분한 정보를 제공합니다.
GDB를 사용하면 실행중인 프로그램에 연결하고 다음과 같은 기능을 호출 할 수 있습니다 malloc_stats()
프로그램이 다른 언어로 작성된 경우 더 까다로울 수 있습니다. 최근 일부 GDB는 스크립팅 가능성을 얻었으며 사람들은 gdb-heap 과 같은 흥미로운 프로젝트를 시작했습니다.이 프로젝트 는 코어 덤프에서 Python 메모리를 분석 할 수 있습니다. C ++ 객체에 대해 유사한 메모리 분석 스크립트가 가능할 수 있습니다.
https : //.com/questions/2564752/examining-cc-heap-memory-statistics-in-gdb도 읽어보십시오.
Solaris의 경우, 이 StackOverflow 질문 에 대한 답변에 몇 가지 도구가 나열되어 있습니다 (다른 형식의 잘못된 메모리 액세스를 통한 누출 검사 포함).
나는 Objective-C를 얼마 동안 해왔으며 C 레벨 메모리 관리 및 그와 같은 것들을 다루는 분석기가 있습니다. Clang Static Analyzer 는 Apple이 xCode IDE와 함께 제공하기로 결정했습니다. 이것이 귀하의 질문에 좋은지 확실하지 않지만 C를하고 있다면 시도해 볼 가치가 있습니다.