및 Valgrind의의 다음 명령을 사용하여 표준 메모리 누수 검사를 실행 한 후Valgrind의 및 메모리 누출
valgrind --tool=memcheck --leak-check=full ./path_to_program
내가 요약 다음있어 :
= = 12550 == LEAK 개요 :
== 12550 == 확실히 손실 : 597,170 바이트 7 개 블록
== 12550 == indirectl에 Y가 손실 : 120 바이트 블록 10
== 12550 == 가능성 손실 : 770,281 바이트 1,455 블록
에== 12550 == 아직도 도달 : 2,319 블록
== 12,550에서 181,189 바이트 = = suppress : 0 블록의 0 바이트
== 12550 == 도달 가능한 블록 (포인터가있는 블록)은 표시되지 않습니다.
== 12550 == 그들을 보려면와 다시 실행 : --leak 검사 = 전체 --show-도달 = 예
== 12550 ==
== 12550 == 카운트를 들어 그것은 나 아주 잘 보이지 않는
-v
== 12550 == ERROR 요약 : 325에서 325 에러 상황 (11에서 176 억제) 검출 및 억제 오류와의 재방송 , 제 질문은
입니다.이러한 누출이 모두있는 경우 왜 내 프로그램이 폭발하지 않습니까?
또한 차이 무엇 : 확실히 간접적으로
- 아직 도달
이며 어떻게 해결하기 위해 시도 할 수 있습니다 그들?
왜 폭발합니까? –
@OliCharlesworth 왜냐하면 할당 된 많은 메모리가 해제되지 않기 때문입니다. – Matteo
@Matteo : 아주 제한된 환경에 있지 않으면 MB가 최악입니다. – Mat