저는 처음으로 valgrind를 확인하려고합니다. 그러나 현재 결과가 마음에 들지만 valgrind가 항상 발생하는 메모리 누수를 반환하는지 또는 궁금합니다. 일부 프로그램에서 벗어날 수있는 경우 프로그램이 종료되는 방식에 따라 특수성이 있습니다. 예를 들어, 'killall -9 program'을 사용하여 프로그램을 종료 한 경우.valgrind가 기존의 누설/오류를보고하지 않는다는 조건이 있습니까?
가 여기 내 현재 프로그램의 결과이다이 결과는 말 그대로 제로 누수 또는 컨텍스트 오류가 있음을 확인 하는가, 우분투 시스템 모니터
==10182== HEAP SUMMARY:
==10182== in use at exit: 0 bytes in 0 blocks
==10182== total heap usage: 8,747,225 allocs, 8,747,225 frees, 1,352,535,387 bytes allocated
==10182==
==10182== All heap blocks were freed -- no leaks are possible
==10182==
==10182== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
에서 '프로세스 끝내기'를 사용하여 중지?
나는 "출구에서 사용 중"에 덜주의를 기울이고, allocs와 frees의 수가 일치한다는 사실에 더주의를 기울일 것입니다. 즉, 전체 힙/풀이 해제 될 때까지 누출 된 메모리가 없었 음을 의미합니다. 모든 것이 정확하고 개별적으로 해제되었습니다. –
@BenVoigt - 답변에서 확장 할 수 있습니까? – Jason
시스템 모니터가 보내는 신호를 모르겠습니다. 명령 프롬프트에서'kill -TERM pid' 또는'kill -KILL pid'를 사용하십시오. 첫 번째는 valgrind가 추적 할 종료 논리를 트리거해야합니다. 두 번째 경우에는 프로세스와 호스트하는 valgrind 라이브러리가 사라집니다. 누수를보고 할 기회는 없습니다. –