Средство очистки утечки сообщает о непрямой утечке с неполной трассировкой стека - PullRequest
0 голосов
/ 11 января 2019

В одном из моих кодов дезинфицирующее средство для утечек сообщает о некоторых косвенных утечках, но отсутствует полная трассировка стека, из-за которой я не могу найти, где на самом деле происходит утечка. Мне нужно знать, где именно происходит эта утечка, чтобы я мог ее исправить или подавить (если она есть во внешних библиотеках) Я получаю следующий отчет

* ============================================== ===================

==10166==ERROR: LeakSanitizer: detected memory leaks

Indirect leak of 1586 byte(s) in 29 object(s) allocated from:

#0 0x59fb52 in operator new(unsigned long) /local/mnt/workspace/bcain_0721/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:92:3

#1 0x7f3700728918 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /local/scratch/ejseado/working/gcc-7.3.0-build/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/new_allocator.h:111

#2 0x7f3700728918 in std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) /local/scratch/ejseado/working/gcc-7.3.0-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:1057

Indirect leak of 59 byte(s) in 1 object(s) allocated from:

#0 0x59fb52 in operator new(unsigned long) /local/mnt/workspace/bcain_0721/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:92:3

#1 0x7f3700728918 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /local/scratch/ejseado/working/gcc-7.3.0-build/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/new_allocator.h:111

#2 0x7f3700728918 in std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) /local/scratch/ejseado/working/gcc-7.3.0-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:1057

#3 0x60f000a8672f  (<unknown module>)

Indirect leak of 59 byte(s) in 1 object(s) allocated from:

#0 0x59fb52 in operator new(unsigned long) /local/mnt/workspace/bcain_0721/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:92:3

#1 0x7f3700728918 in __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) /local/scratch/ejseado/working/gcc-7.3.0-build/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/new_allocator.h:111

#2 0x7f3700728918 in std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) /local/scratch/ejseado/working/gcc-7.3.0-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:1057

#3 0x7ffd510f463f  ([stack]+0x5d63f)

----------------------------------------------- ------ *

Я пытался использовать следующую опцию

setenv ASAN_OPTIONS fast_unwind_on_malloc = 0

но при этом все утечки исчезают, в то время как в документации сказано, что это должно дать детальную трассировку стека

Может ли кто-нибудь помочь мне в этом?

Спасибо

...