抑制 LeakSanitizer 输出

3
我该如何抑制LeakSanitizer的输出?
对于Address Sanitizer,我可以使用__attribute__((no_sanitize_address))(当在-fsanitize = address下运行时如何抑制LeakSanitizer报告?。但是这对LS无效。
__attribute__((no_sanitize_address))
std::shared_ptr make_module()
{
  return std::shared_ptr(new client);
}

  21 Indirect leak of 3670536 byte(s) in 1 object(s) allocated from:
  22     #0 0x7fbf42f521a8 in operator new(unsigned long) (/lib64/libasan.so.4+0xe01a8)
  23     #1 0x7106b2 in graphite::make_module() /client.cc:15

1
不修复漏洞会不会更好呢? - undefined
@ChristianRapp 如果它们在库中,就不需要。 - undefined
1
离题:应该在那里使用std::make_shared - undefined
@ChristianRapp,不是。我的研究发现,似乎这是一个错误的阳性结果。 - undefined
@ Marek R 这取决于情况。是的,我们有双重分配,但这段代码每次运行只调用一次,并且是在make_shared出现很久之前编写的。 - undefined
1个回答

3
尝试使用export LSAN_OPTIONS=detect_leaks=0来运行。如需更精细的控制,请使用LSAN_OPTIONS=suppressions接口(例如在这里中描述)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接