地址Sanitizer interceptor_via_fun

AddressSanitizer interceptor_via_fun

提问人:joaerl 提问时间:11/22/2018 更新时间:11/23/2022 访问量:1192

问:

想要禁止显示 AddressSanitizer 检测到的以下错误。

==114064==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7ffe60fee2f0 at pc 0x000001e6ef34 bp 0x7ffe60feb6c0 sp 0x7ffe60feb6b8
WRITE of size 8 at 0x7ffe60fee2f0 thread T0
    #0 0x1e6ef33 in std::_Function_base::_Function_base() /opt/gcc-8.2.0/include/c++/8.2.0/bits/std_function.h:252
    #1 0x1e6ef33 in function<Engine::Engine(const Resource&, SourceDataVersion, Engine::CalculationResolution)::<lambda(std::unique_ptr<const model::Car>)> > /opt/gcc-8.2.0/include/c++/8.2.0/bits/std_function.h:668
    ...

我在想设置 ASAN_OPTIONS=suppressions=asan_blacklist.txt,其中包含 asan_blacklist.txt

interceptor_via_fun:_Function_base

正如文档所说,可以解决问题

interceptor_via_fun:NameOfCFunctionToSuppress

但事实并非如此。看到谷歌搜索“AddressSanitizer interceptor_via_fun”只返回 151 个结果,我感到非常震惊。:/

我应该在抑制文件中放什么?

C++ GCC 地址清理器

评论

6赞 YSC 11/22/2018
现在你只会看到你的问题。
0赞 Ofek Shilon 6/1/2022
OP 打开了一个 github 问题: github.com/google/sanitizers/issues/1027 .快来投票吧

答:

-3赞 Adna Kateg 11/25/2020 #1

你没有试过这个llvm手册吗?

并添加以下行以抑制您的外部库

interceptor_via_lib:NameOfTheLibraryToSuppress

0赞 Alex E 11/23/2022 #2

https://github.com/google/sanitizers/issues/1027#issuecomment-1147125536 有一个解释。此外,您在此处使用的是 lambda 和函子,可能不受支持