[llvm-dev] Runtime interception: design problem

John Criswell via llvm-dev llvm-dev at lists.llvm.org
Wed May 25 08:11:37 PDT 2016

Dear Pierre,

Stepping up a level, what is your goal in replacing calls to malloc() 
and free()?  Is it any different than what SAFECode, SoftBound, or ASan do?


John Criswell

On 5/25/16 8:05 AM, Pierre Gagelin via llvm-dev wrote:
> Hi everyone,
> I am having troubles but this shouldn't be hard to solve for many 
> people here. I am beginning a runtime feature for the BoundsChecking 
> pass and I want to replace the libc malloc&free. I followed the design 
> of AddressSanitizer (Asan) and tried to use the INTERCEPTOR macro from 
> the interception.h file of compiler-rt library.
> Here is the problem. The file I modify (BoundsCheking.cpp) is in 
> lib/Transforms/Instrumentation/ and I can't include properly 
> interception.h (which is in projects/compiler-rt/lib/interception/). I 
> looked at the CMakeLists.txt and how other files included 
> interception.h but they are all from compiler-rt lib directory.
> I assume this is normal as runtime project should be developped under 
> the correct directory but I don't see how this should be designed in 
> order that the code optimized by BoundsCheking Pass uses my own 
> malloc&free functions.
> I spent quite some time on Asan runtime code and found that runtime 
> could be initialized with a call to __asan_init() (function defined in 
> asan_rtl.cc) from the instrumented code directly but I don't know if 
> it's the only way to do it or how to reproduce it...
> So to resume, I want to make my own malloc and free function to be 
> called by the code I instrument with BoundsChecking. Any suggestion is 
> welcome =)
> Thanks,
> Pierre
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

John Criswell
Assistant Professor
Department of Computer Science, University of Rochester

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160525/6d04e000/attachment.html>

More information about the llvm-dev mailing list