malloc_usable_size segfault looks like http://llvm.org/viewvc/llvm-project?rev=210452&view=rev, you might need to update your asan runtime. I'm not sure if this is revision is merged to the gcc copy yet.
I think I understand why you had 2 copies of the runtime library in one process. There is one that comes from the platform tree (libasan_preload.so), and the other from asan_device_setup. This is an unfortunate situation where 2 integration paths did not quite merge. If you are up to it, I'd suggest updating external/compiler-rt source to a newer revision, and changing the library name (in Android.mk) to match what either gcc or clang drivers call it. Yes, we've got different names for it in gcc and in clang. And on Android it is a system-wide shared library. This is crazy. On Mon, Jul 28, 2014 at 11:22 AM, Konstantin Serebryany <[email protected]> wrote: > +eugenis > > On Sat, Jul 26, 2014 at 6:24 AM, ji wang <[email protected]> wrote: >> I can't find any GCC Asan usage there, only have the LLVM part. > Basically, use "gcc" instead of "clang". > There are minor differences, like GCC defines __SANITIZE_ADDRESS__ > macro, but does not support clang's __has_feature(address_sanitizer) > >> My question is I want use GCC4.9 Asan to test only one shared lib of a >> process in arm, but got failure, so I wonder whether I use it the wrong way. > > On Linux, you typically have to link the asan run-time to the > executable, but see > https://code.google.com/p/address-sanitizer/wiki/AsanAsDso > Android is a separate beast, I'll let eugenis@ reply. > > --kcc > >> To be more specific,I want to test one shared lib in android, only got this >> lib recompiled with asan(for I'm working on: libhwui.so), the other part of >> the process it loaded in don't recompiled with asan include the >> executbale(for I'm working on : mediaserver), but I don't want LD_PRELOAD >> the asan runtime shared lib everytime using LLVM asan, since GCC4.9 Asan >> supported on arm platform, so I try the GCC Asan if it can recompiled one >> shared >> lib, pust into the device, and the Asan test can runs, no need to preload >> the shared asan runtime lib to this process. >> At first, I got "AddressSanitizer: failed to intercept 'memcpy'", and fix >> it. >> And now , I got a strange SIGV error: >> 08-24 09:52:37.729 I/DEBUG ( 2387): backtrace: >> >> 08-24 09:52:37.729 I/DEBUG ( 2387): #00 pc 00000000 <unknown> >> >> 08-24 09:52:37.729 I/DEBUG ( 2387): #01 pc 0000dd0f >> /system/lib/libc.so (malloc_usable_size+10) >> >> 08-24 09:52:37.729 I/DEBUG ( 2387): #02 pc 00004c4d >> /system/lib/libsqlite.so >> >> 08-24 09:52:37.729 I/DEBUG ( 2387): #03 pc 0000a735 >> /system/lib/libsqlite.so >> >> 08-24 09:52:37.729 I/DEBUG ( 2387): #04 pc 0000a787 >> /system/lib/libsqlite.so >> >> 08-24 09:52:37.729 I/DEBUG ( 2387): #05 pc 0000ac73 >> /system/lib/libsqlite.so >> And I don't recompile libsqlite.so and I don't think it have any relation >> with libhwui.so which I recompiled with asan. But It seems >> malloc_usable_size for libsqlite.so no long point to dlmalloc_usable_size >> anymore, so the same as the dlmalloc,dlfree in sqllite.so, very strange, >> drive me crazy now! >> >> >> 在 2014年7月25日星期五UTC+8下午9时02分24秒,kcc写道: >>> >>> What's wrong with the existing documentation at >>> https://code.google.com/p/address-sanitizer/ ? >>> Please post specific questions. >>> >>> --kcc >>> >>> On Fri, Jul 25, 2014 at 4:32 PM, ji wang <[email protected]> wrote: >>> > Especially the way that how to test a shared lib using GCC4.9 asan. >>> > thanks >>> > >>> > -- >>> > You received this message because you are subscribed to the Google >>> > Groups >>> > "address-sanitizer" group. >>> > To unsubscribe from this group and stop receiving emails from it, send >>> > an >>> > email to [email protected]. >>> > For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "address-sanitizer" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "address-sanitizer" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
