macos x 10.8에서 valgrind를 실행 중입니다.Valgrind의 혼란스러운 출력은 간접적으로 손실 된 메모리 누수를 보여 주지만 확실하게 손실되거나 손실되지는 않습니다.
가 valgrinds 자주 묻는 질문, http://valgrind.org/docs/manual/faq.html#faq.deflost에 따르면, "간접적 손실""LEAK SUMMARY:
==11312== definitely lost: 0 bytes in 0 blocks
==11312== indirectly lost: 48 bytes in 2 blocks
==11312== possibly lost: 0 bytes in 0 blocks
==11312== still reachable: 45,857 bytes in 270 blocks
==11312== suppressed: 16,805 bytes in 87 blocks"
프로그램이 포인터 기반 구조에서 메모리가 누수 의미 : Valgrind의 시동
Valgrind의이 누출 요약을주고있다"==11312== WARNING: Support on MacOS 10.8 is experimental and mostly broken.
==11312== WARNING: Expect incorrect results, assertions and crashes.
==11312== WARNING: In particular, Memcheck on 32-bit programs will fail to
==11312== WARNING: detect any errors associated with heap-allocated data."
에 말했다. 예를 들어 이진 트리의 루트 노드가 "확실하게 손실"되면 모든 자식이 "간접적으로 손실"됩니다. "확실히 손실 된"누설을 수정하면 "간접적으로 손실 된"누출이 사라집니다.
확실하게 누수가 유실되거나 누출이 누출되지 않아 문제를 해결할 수 없습니다. 나는 무엇을 고쳐야 할까? 10.8에서 valgrind의 실험적 특성으로 인해이 보고서가 버그가 될 수 있습니까?
저는 컴파일러가 64 비트 컴파일러이므로 64 비트 프로그램으로 컴파일하고 있다고 생각합니다.
나는 이것이 어떻게 작동하는지 모르겠어요,하지만 : 그것은 그 억제 누출에서 참조 뭔가 될 수 있을까? –
그럴 가능성은 확실하지 않습니다. 나는 valgrind에 대해 충분히 알지 못하고 Mac에서 어떻게 작동하는지에 대해 잘 모릅니다. 나는 리눅스에서 소프트웨어를 테스트하려고 노력하고 있는데, 지금은 presius의 주석을 테스트하지만 소프트웨어의 동작은 macos x와는 완전히 다르다. 분명히 프로그램을 다시 설치해야합니다. 희소식은 리눅스의 valgrind에 따르면 단지 8 개의 오류가 누출되지 않는다는 것입니다. –
오류는 linux에서 컴파일 된 코드가 함수를 건너 뛰는 것을 보여줍니다. 따라서 코드가 f1-> f2-> f3이어야합니다. f2가 완전히 건너 뜁니다. 나는 디버깅을 좋아해야한다. –