[PATCH] [compiler-rt] Implement AddressSanitizer suppressions

Alexey Samsonov vonosmas at gmail.com
Sat Nov 22 15:31:28 PST 2014


>>! In D6280#7, @kubabrecka wrote:
>> Suppose you run your code and see a bug in function foo() from OpenCL, which is a precompiled library you can't fix. You suppress foo(), rerun the code and see a bug in function bar() in OpenCL. Hm. If you can't fix OpenCL anyway, isn't it better to suppress all reports from it completely? 
> 
> That absolutely makes sense, but only if we allow suppressions by function name as well, which I was under the impression you were suggesting to remove.
> 
>> I *have* seen many cases where ASan wasn't able to finish printing a report because application was killed earlier
> 
> I see. Do we have an example of that? Or a testcase? Does by any chance the fact that we're doing the suppression only for interceptors make it less likely?

Unfortunately no, if we could reproduce this with a simple test case, we would improve the runtime somehow. Also, in our internal ASan setup we use in-process symbolizer (that is, not launch llvm-symbolizer binary and communicate with it via pipe). Symbolizer code (it is essentially a DWARF parser from llvm/lib/DebugInfo) does a lot of work, and a lot of allocations.

> 
>> - leave the ability to disable specific interceptor by name, with no symbolization necessary
>> - symbolize the stack trace in the interceptor *only* if user has provided a suppression
> 
> That makes sense, I'll post an updated patch.

Great, thank you!

http://reviews.llvm.org/D6280






More information about the llvm-commits mailing list