<div dir="ltr"><div class="gmail_default" style><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jan 6, 2013 at 4:03 PM, Jean-Daniel Dupas <span dir="ltr"><<a href="mailto:devlists@shadowlab.org" target="_blank">devlists@shadowlab.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I also encounter this issue and solved it locally by implementing this 2 functions.<br>
<br>
- The linux version of StartSymbolizerSubprocess uses only POSIX function and can be reused as is on OS X (maybe we should  move it in a new sanitizer_symbolizer_posix.cc file)<br>
- I have a simple implementation of  GetListOfModules (see the attached file) but it required 10.6 at least.<br>
<br>
That said, implementing this 2 functions is not enough to get something useful on OS X. It remains major issue:<br>
<br>
- InitializeExternalSymbolizer is never called, and so the values returns GetListOfModules is never use.<br>
- llvm-symbolizer failed to get file and location of the stack trace symbols using debug informations.<br>
- When using ubsan to instrument a dynamic library, trying to load this library will result in missing "__ubsan_xxx" symbols error.<br>
<br>
Is someone working on asan/ubsan integration on OS X actually ?<br></blockquote><div><br></div><div style>Alex (in CC) is working on asan for OS X. I think he can handle ubsan as well. (but give us a few days, we are all out of office due to holidays).</div>
<div style><br></div><div style>--kcc</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Le 5 janv. 2013 à 03:37, Meador Inge <<a href="mailto:meadori@codesourcery.com">meadori@codesourcery.com</a>> a écrit :<br>
<div class="HOEnZb"><div class="h5"><br>
> Some more information …<br>
><br>
> On Jan 4, 2013, at 6:56 PM, Meador Inge wrote:<br>
><br>
>> I am building LLVM on OS X 10.7.5 with cmake.  Under this configuration some ASan and UBSan tests<br>
>> are failing:<br>
>><br>
>> $ make check-ubsan<br>
>><br>
>> …<br>
>><br>
>> ********************<br>
>> Testing Time: 2.36s<br>
>> ********************<br>
>> Failing Tests (11):<br>
>>   UndefinedBehaviorSanitizer :: Float/cast-overflow.cpp<br>
>>   UndefinedBehaviorSanitizer :: Integer/add-overflow.cpp<br>
>>   UndefinedBehaviorSanitizer :: Integer/div-zero.cpp<br>
>>   UndefinedBehaviorSanitizer :: Integer/no-recover.cpp<br>
>>   UndefinedBehaviorSanitizer :: Integer/sub-overflow.cpp<br>
>>   UndefinedBehaviorSanitizer :: Integer/uadd-overflow.cpp<br>
>>   UndefinedBehaviorSanitizer :: Integer/usub-overflow.cpp<br>
>>   UndefinedBehaviorSanitizer :: Misc/bool.cpp<br>
>>   UndefinedBehaviorSanitizer :: Misc/enum.cpp<br>
>>   UndefinedBehaviorSanitizer :: TypeCheck/misaligned.cpp<br>
>>   UndefinedBehaviorSanitizer :: TypeCheck/null.cpp<br>
>><br>
>> Expected Passes    : 10<br>
>> Expected Failures  : 1<br>
>> Unexpected Failures: 11<br>
><br>
> These tests fail with the following assertion:<br>
><br>
> ==40116== Sanitizer CHECK failed: /Users/meadori/Code/src/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc:26 ((0 && "unimplemented")) != (0) (0, 0)<br>
><br>
> Should these tests be running?  StartSymbolizerSubprocess and GetListOfModules are<br>
> not implemented for OS X.<br>
><br>
>> $ make check-asan<br>
>><br>
>> …<br>
>><br>
>> ********************<br>
>> Testing Time: 125.18s<br>
>> ********************<br>
>> Failing Tests (1):<br>
>>   AddressSanitizer :: use-after-free.cc<br>
>><br>
><br>
> This failure seems to be due to adding ALWAYS_INLINE to 'free_common' in r158885.<br>
> I think fixing the stack trace checks in use-after-free.cc will do:<br>
><br>
> -  // CHECK-Darwin: {{    #0 0x.* in .*free_common.*}}<br>
> -  // CHECK-Darwin: {{    #1 0x.* in .*mz_free.*}}<br>
> +  // CHECK-Darwin: {{    #0 0x.* in .*mz_free.*}}<br>
>   // We override free() on Darwin, thus no malloc_zone_free<br>
> -  // CHECK-Darwin: {{    #2 0x.* in _?wrap_free}}<br>
> -  // CHECK-Darwin: {{    #3 0x.* in _?main .*use-after-free.cc:21}}<br>
> +  // CHECK-Darwin: {{    #1 0x.* in _?wrap_free}}<br>
> +  // CHECK-Darwin: {{    #2 0x.* in _?main .*use-after-free.cc:21}}<br>
><br>
> --<br>
> Meador Inge<br>
> CodeSourcery / Mentor Embedded<br>
> <a href="http://www.mentor.com/embedded-software" target="_blank">http://www.mentor.com/embedded-software</a><br>
><br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">-- Jean-Daniel<br>
<br>
<br>
</font></span><br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div></div>