Экстра выделяет валгринд - PullRequest
0 голосов
/ 28 октября 2018

Вот мой вывод valgrind

$ valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes new
==14028== Memcheck, a memory error detector
==14028== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==14028== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==14028== Command: new
==14028==
allocated
deleted
==14028==
==14028== HEAP SUMMARY:
==14028==     in use at exit: 72,704 bytes in 1 blocks
==14028==   total heap usage: 2 allocs, 1 frees, 72,754 bytes allocated
==14028==
==14028== 72,704 bytes in 1 blocks are still reachable in loss record 1 of 1
==14028==    at 0x4C29C23: malloc (vg_replace_malloc.c:299)
==14028==    by 0x4EBF18F: pool (eh_alloc.cc:117)
==14028==    by 0x4EBF18F: __static_initialization_and_destruction_0 (eh_alloc.cc:244)
==14028==    by 0x4EBF18F: _GLOBAL__sub_I_eh_alloc.cc (eh_alloc.cc:307)
==14028==    by 0x400FB02: _dl_init (in /usr/lib64/ld-2.17.so)
==14028==    by 0x4001069: ??? (in /usr/lib64/ld-2.17.so)
==14028==
==14028== LEAK SUMMARY:
==14028==    definitely lost: 0 bytes in 0 blocks
==14028==    indirectly lost: 0 bytes in 0 blocks
==14028==      possibly lost: 0 bytes in 0 blocks
==14028==    still reachable: 72,704 bytes in 1 blocks
==14028==         suppressed: 0 bytes in 0 blocks
==14028==
==14028== For counts of detected and suppressed errors, rerun with: -v
==14028== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Как вы видите, дополнительные ресурсы, возможно, получены из какого-то источника, который я не могу определить, valgrind перечисляет их как ???.Это просто странное распределение за кулисами?Должен ли я беспокоиться об этом?

1 Ответ

0 голосов
/ 28 октября 2018

Этот отчет о распределении / «все еще достижимой» памяти является нормальным, и о нем сообщалось в valgrind bugzilla (и исправлено): см. Ao ошибки https://bugs.kde.org/show_bug.cgi?id=345307 и https://bugs.kde.org/show_bug.cgi?id=348978.

Возможно, вам потребуетсяобновите систему до нового valgrind и / или более нового ld / glibc / ..., чтобы исправить все это.

Если вы еще не можете выполнить обновление, тем временем вы можете использовать файл подавления.

Запустите valgrind + вашу программу с параметром valgrind --gen-suppressions = yes (или = all), чтобы обеспечить необходимую запись подавления.

...