C++ 额外allocs valgrind

C++ 额外allocs valgrind,c++,valgrind,C++,Valgrind,这是我的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

这是我的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)

正如你所看到的,额外的alloc似乎来自我无法识别的某个来源,valgrind将其列为???。这只是一些奇怪的幕后分配吗?我应该担心吗?

此分配/“仍然可访问”内存报告是正常的,并且已在valgrind bugzilla上报告并修复:请参阅a.o.bugs和

您可能需要升级到更新的valgrind和/或更新的ld/glibc/。。。把这些都修好

如果您不能同时升级,您可以使用抑制文件


使用valgrind选项-gen suppressions=yes或=all运行valgrind+程序,以提供所需的抑制条目

对。Valgrind比你聪明。在出口处使用:1个块中72704字节总堆使用率:2个allocs,1个frees,72754字节分配不好。两个分配和一个自由。这是由动态链接器进行的分配;这没关系,您不必担心。注意,3.13之前的valgrind版本提供了更好的排除文件,可以正确地解释72404基本分配。已经提交了几个bug报告,但是由于3.12和3.13之间的差异,ValGr.Org的用户不愿意为C和C++两个问题修复这个问题。@ DaviC.RANKIN ValgRAND发布现在是3.14,并且如果这样的分配报告通常出现由于GLYBC/LD……的变化,那么ValGRand和/或GLYBC/LD/…合作避免这些报告。请参阅a.o.选项-运行cxx freeres和bug 348978。您可能需要更新的valgrind和/或更新的glibc/ld/。。。把这一切都修好。如果您仍然有问题,请报告或更新valgrind bugzilla上的错误,我们将在时间允许的情况下愉快地修复它:。当然,我们的目标是为干净的程序提供干净的输出。@当然,我会重新填充和修改,但我之前已经打开了两个关于这个问题的错误报告,基本上得到了一个WONTFIX,并且