2012-07-25 5 views
0

Libgcrypt로 몇 가지 테스트를하고 있는데 valgrind를 사용하여 메모리 사용량을 검사 할 때 종료 할 때 3,200 바이트가 사용 중입니다.Libgcrypt가있는 프로그램의 메모리 누수

나는

valgrind --leak-check=full --track-origins=yes --show-reachable=yes ./my_program 

를 사용하는 것을 시도했다 그러나 Valgrind의 Valgrind의는이 내 코드에서 라인에 대해 불평 : libgcrypt를 내부 기능에 대한

version = gcry_check_version("1.5.0"); 

및 Valgrind의.

내 테스트 코드는 여기에 있습니다 : http://www.tiago.eti.br/storage/post2.c 그리고 나는 그것이 인 libgcrypt의 버그 또는 내가 뭔가 잘못을하고있는 중이 야한다 데비안 시드 저장소

에서 libgcrypt를 1.5.0을 사용하고 있습니다?

답변

0

모든 라이브러리가 모든 리소스를 완전히 지켜야하는 것은 아닙니다. 일부 "영구적 인"할당이 한 번만 발생하고 프로그램이 끝날 때까지 (예 : 버전 문자열의 경우) 사용 중이라면 라이브러리가이 할당을 해제하지 않아도된다는 전제가 가능합니다.

타사 라이브러리를 다루는 것은 불행한 현실입니다. 귀찮은 경우 Valgrind에 대한 억제 파일을 --gen-suppressions=all으로 만들어야합니다.

곰 염두에두고 "아직 도달"메모리가 그냥 "게으름"입니다, 당신은 실제로 할당 잃은 적이 있기 때문에하지 정말 누출. 누출은 진정한 프로그래밍 오류로 간주되어야하며, 도달 할 수없는 할당 해제되지 않은 메모리는 용인 할 수있는 바로 가기 일 수도 그렇지 않을 수도 있습니다.

+0

대단히 감사합니다! –