2011-09-10 1 views
1

나는 ++ Qt는/C와 라이브러리를 개발하고 지금은 메모리 누수 테스트 확실 할, Valgrind 또는 다른 도구로 내 Qt 소프트웨어의 메모리 누수를 감지하는 방법은 무엇입니까?

내가 Valgrind의 발견과 좋은 검출기 (나는 여전히 작동하지 않습니다) 보이지만,이 또 다른입니다

메모리 누수 테스트 용 도구?

+5

Linxu/Unix 플랫폼을 사용하는 경우 Valgrind가 충분합니다. Valgrind 웹 사이트에서 사용 방법을 확인하십시오. –

+0

좋은 목록이 있습니다 [여기] (http://en.wikipedia.org/wiki/Memory_debugger). – cyco130

답변

0

코드에 따라 많은 추가 시도없이 직접 메모리 누출을 점검 할 수 있습니다. new 연산자와 delete 연산자 만 사용하십시오. 컨테이너를 사용하여 new 내에 할당 된 각 메모리 주소를 저장하십시오. delete가 호출되면 컬렉션에서 제거합니다. 프로그램이 끝나면 컬렉션이 비어 있는지 확인하십시오.

세부 사항은 예 : 스콧 메이어 (Scott Meyers)의 Effective C++ 책 Item 50에서 찾을 수 있습니다.

+0

대답 해 주셔서 감사합니다. 아주 좋은 생각 인 것 같아요. – softghost

+0

좋은 생각이 듭니다. 그러나, 당신은 당신의 구현이 새로운 연산자와 삭제를위한 일반적인 규칙을 따르도록주의해야합니다 ... – Reinhard

+1

Btw, valgrind가 정확히 그렇게합니다! –

1

예, Als가 의견과 개인적인 경험을 통해 지적했듯이 valgrind도 좋습니다. 사용할 수있는 --leak-check=yes 등 다양한 옵션이 있습니다. valgrind를 실행하면 다음 실행에 포함 할 수있는 몇 가지 권장 옵션이 출력됩니다.

Valgrind가 시도하고있는, 즉 메모리 누수를 찾는 문제는 복잡한 문제입니다. valgrind가 혼동되어 가양 성을 산출하는 경우가 있습니다. 즉, valgrind가없는 곳에서 메모리 누수가 발생하는 경우가 있습니다. 그러나이 외에도 valgrind는 사용자에게 친숙하고 유용합니다.

관련 문제