- Использование/связывание с libstdc++
- Использование/связывание с libc++
valgrind --leak-check=full --show-reachable=yes --track-origins=yes --log-file=test_program.log -v ./test_program
Версия libstdc++ работает и не приводит к утечкам памяти:
Код: Выделить всё
==
== HEAP SUMMARY:
== in use at exit: 0 bytes in 0 blocks
== total heap usage: 24,813,106 allocs, 24,813,106 frees, 51,325,970,073 bytes allocated
==
== All heap blocks were freed -- no leaks are possible
==
== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Код: Выделить всё
==434036== HEAP SUMMARY:
==434036== in use at exit: 16 bytes in 1 blocks
==434036== total heap usage: 317,709,577 allocs, 317,709,576 frees, 645,827,127,171 bytes allocated
==434036==
==434036== Searching for pointers to 1 not-freed blocks
==434036== Checked 401,408 bytes
==434036==
==434036== 16 bytes in 1 blocks are still reachable in loss record 1 of 1
==434036== at 0x484DA83: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==434036== by 0x49A365F: ??? (in /usr/lib/llvm-14/lib/libc++abi.so.1.0)
==434036== by 0x49A24E9: __cxa_get_globals (in /usr/lib/llvm-14/lib/libc++abi.so.1.0)
==434036== by 0x49A53F6: __cxa_throw (in /usr/lib/llvm-14/lib/libc++abi.so.1.0)
==434036== by 0x2EE7B3: goal::details::special_node::value() const (in workspace/goal/goal_test)
==434036== by 0x2DC349: goal::details::caller_node::value() const (in workspace/goal/goal_test)
==434036== by 0x50AC40: double goal::details::arg_node::process const&) (in workspace/goal/goal_test)
==434036== by 0x45A79C: bool execute_test_base() (in workspace/goal/goal_test)
==434036== by 0x2322A0: main (in workspace/goal/goal_test)
==434036==
==434036== LEAK SUMMARY:
==434036== definitely lost: 0 bytes in 0 blocks
==434036== indirectly lost: 0 bytes in 0 blocks
==434036== possibly lost: 0 bytes in 0 blocks
==434036== still reachable: 16 bytes in 1 blocks
==434036== suppressed: 0 bytes in 0 blocks
==434036==
==434036== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
- Использование/связывание с libstdc++ с ASAN/ LSAN/UBSAN/TSAN
- Использование/связывание с libc++ с ASAN/LSAN/UBSAN/TSAN
< /ol>
При их запуске ни один из них не вызывает ошибок или предупреждений дезинфицирующего средства.
Использованные компиляторы: - g++-13 (Ubuntu 13.1.0-8ubuntu1~22.04) 13.1.0
- clang версия 20.0.0git
Вопросы: Может ли утечка из valgrind является ложным срабатыванием, и что еще можно сделать, чтобы убедиться в ее достоверности?
Подробнее здесь: https://stackoverflow.com/questions/791 ... e-positive