Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在valgrind memcheck中命名mempools?_C_Postgresql_Valgrind_Memcheck - Fatal编程技术网

有没有办法在valgrind memcheck中命名mempools?

有没有办法在valgrind memcheck中命名mempools?,c,postgresql,valgrind,memcheck,C,Postgresql,Valgrind,Memcheck,PostgreSQL大量使用内存池,当启用Valgrind时,使用Valgrind\u CREATE\u MEMPOOL等向Valgrind提供有关内存池的信息 结合使用客户端请求的增量泄漏检查,如VALGRIND\u DO\u leak\u CHECK和VALGRIND\u DO\u ADDED\u leak\u CHECK,这对于跟踪大型、复杂和长寿命程序中的内存使用非常有用 但是:PostgreSQL有很多缓存,它们的生存期往往跨越事务等典型边界。这样的缓存中的内存出现泄漏(出于各种原因)

PostgreSQL大量使用内存池,当启用Valgrind时,使用
Valgrind\u CREATE\u MEMPOOL
等向Valgrind提供有关内存池的信息

结合使用客户端请求的增量泄漏检查,如
VALGRIND\u DO\u leak\u CHECK
VALGRIND\u DO\u ADDED\u leak\u CHECK
,这对于跟踪大型、复杂和长寿命程序中的内存使用非常有用

但是:PostgreSQL有很多缓存,它们的生存期往往跨越事务等典型边界。这样的缓存中的内存出现泄漏(出于各种原因)通常是可以的,但如果仅使用堆栈在缓存上下文中分配了这样的内存,则并不总是容易识别

因此,我正在寻找一种在泄漏报告中显示内存池名称并在抑制中对其进行过滤的方法。理想情况下

# Do not copy, this DOES NOT WORK
{
   my_suppression_name
   Memcheck:Leak
   match-leak-kinds: reachable
   pool:CacheMemoryContext           # <---- something like this
   fun:malloc
   fun:AllocSetAlloc
   fun:palloc
   fun:initStringInfo
   fun:apply_work
   ...
}
#不要复制,这不起作用
{
我的名字
Memcheck:泄漏
匹配泄漏类型:可达
池:CacheMoryContext#
... 6 (+6) bytes in 1 (+1) blocks are possibly lost in loss record 180 of 942
...    in mempool "CacheMemoryContext"                   <---- Like this
...    at 0x815FFC: MemoryContextAlloc (mcxt.c:771)
...    by 0x817680: MemoryContextStrdup (mcxt.c:1157)