не показывает источники вызова malloc.
На всех примерах использования и в мануале вижу такие примеры вывода:
8 bytes in 1 blocks are definitely lost in loss record 1 of 14
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: mk (leak-tree.c:11)
by 0x........: main (leak-tree.c:39)
Сам же на простой программе, которая выделяет память и потом не освобождает получаю совершенно неподробный вывод, указано только расположение самого подмененного malloc :
==621==
==621== 4,000 bytes in 1 blocks are definitely lost in loss record 1 of 1
==621== at 0x4815BEC: malloc (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==621==
Перепроверял наличие -g флага при сборке, пересобирал последнюю версию valgrind.
При этом другие ошибки вроде разыменование неинициализированного указателя указываются вместе со строкой, на которой оно было вызвано.
Работать всё это должно на arm системе, может из-за этого проблема?
Другие блоки потерянные есть?
А если собирать на своем пк, все ок?
Фактически это означает что кто-то выделил эту память, а кто - он не знает. Я бы предложил тебе лечить те утечки, которые известны, где, и , возможно, ты починишь косвенно и те утечки, что неизвестны.
программа не статически слинкована случайно?
Обсуждают сегодня