我有一個使用tbb的C++程序,我正在使用GCC 6.2.1編譯64位Linux。 當我編譯與地址消毒劑(-fsanitize =地址)和運行單元測試時,產生這樣的輸出:如何使用泄漏消毒劑找到內存泄漏的原因
...
[ PASSED ] 56 tests.
=================================================================
==12326==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 54 byte(s) in 3 object(s) allocated from:
#0 0x7f4c634fd020 in strdup (/usr/lib64/libasan.so.3+0x58020)
#1 0x301d215bb4 (/usr/lib64/libtbb.so.2+0x301d215bb4)
SUMMARY: AddressSanitizer: 54 byte(s) leaked in 3 allocation(s).
make[3]: *** [CMakeFiles/check] Error 1
make[2]: *** [CMakeFiles/check.dir/all] Error 2
make[1]: *** [CMakeFiles/check.dir/rule] Error 2
make: *** [check] Error 2
的代碼被編譯以優化關閉(-O0)和-fno-省略-幀 - 指針。我怎樣才能獲得更多關於泄漏的信息?
你嘗試valgrid誤差不放棄? – gsamaras
好點@gsamaras我會試着看看valgrind是否會返回更多的信息。 – Perennialista