[llvm-commits] [PATCH] Keep going after errors in AddressSanitzer

Alexander Potapenko glider at google.com
Thu Sep 6 01:31:40 PDT 2012


Reid,

Have you tested this patch on a real-world code?
I think recovering from errors might be trickier than you suppose it to be.
Some types of bugs, e.g. wild stores, may introduce more bugs if they
corrupt the heap or the internal tool state.
The simplest way to treat such errors will require to drop a store if
it's accessing unaddressable memory.
Another approach is to write the stored value somewhere else in order
to allow further loads to see it.

I suggest you to take a look at Martin Rinard's "Failure-Oblivious
Computing and Boundless Memory Blocks"
(http://people.csail.mit.edu/rinard/paper/sma05oblivious.pdf)

HTH,
Alex

On Thu, Sep 6, 2012 at 6:51 AM, Reid Watson <reidw at google.com> wrote:
> Hi all,
>
> I've attached a couple of patches which add support for ASan to continue
> when an error is encountered.  In order to not wreck performance, the
> decision to enable this must be made at compile time with -mllvm
> -asan-keep-going.  If the option is off (by default) then the instrumented
> code will be 100% identical, with no performance change.
>
> Code Review:
> LLVM: https://codereview.appspot.com/6492085/
> compiler-rt: https://codereview.appspot.com/6493086/
>
> Thanks,
> Reid
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>



-- 
Alexander Potapenko
Software Engineer
Google Moscow



More information about the llvm-commits mailing list