Hi Evgeniy, arm 32bit platform ASan can work as above description "L 5.1 java process enable ASan can work after disable many inceptor functions", I build with Android build system not NDK. But aarch64 bit can't wok
For aarch64 platform build with NDK r10d clang 3.5, error as below: NDK_TOOLCHAIN_VERSION=clang3.5 NDK_TOOLCHAIN=arm-linux-androideabi-clang3.5 APP_ABI := arm64-v8a ndk_build/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: cannot find /ndk_build/android-ndk-r10d/toolchains/llvm-3.5/prebuilt/linux-x86_64/bin/../lib/clang/3.5/lib/linux/libclang_rt.asan-aarch64-android.so: No such file or directory clang++: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [obj/local/arm64-v8a/asan_debug] Error 1 build with NDK r10d gcc 4.9 error as below NDK_TOOLCHAIN_VERSION=4.9 NDK_TOOLCHAIN=aarch64-linux-android-4.9 APP_ABI := arm64-v8a /ndk_build/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: cannot find libasan_preinit.o: No such file or directory /ndk_build/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: cannot find -lasan collect2: error: ld returned 1 exit status build with Android build system add gcc flag -fsanitize=address, it can't detect use after free, and /proc/pid/maps no asan libs. the following link show NDK r10d not support 64-bit ABIs https://code.google.com/p/address-sanitizer/wiki/Android AddressSanitizer in NDK r10d does not support 64-bit ABIs, and compilation with APP_ABI := all will fail. There is a topic discuss aarch64 ASan porting which prefer GCC with ASan https://groups.google.com/forum/#!searchin/address-sanitizer/aarch64/address-sanitizer/YzYRJEvVimw/t0JVN9pF_j4J Thanks a lot for your kindly support. 在 2015年3月31日星期二 UTC+8下午9:34:08,Evgeniy Stepanov写道: > > Hi, > > is it still an issue for you? > Please provide more info about the failure mode. ASan is supposed to > work on the current AOSP master branch with Clang toolchain in the > latest NDK, as described in > https://code.google.com/p/address-sanitizer/wiki/Android. > > This comment looks up-to-date: > https://code.google.com/p/address-sanitizer/issues/detail?id=326#c2 > > > 1. Conflict with libsigchain on Android 5.0, which also intercepts > > sigaction; On Android L 5.1, libsigchain.so no LD_PRELOAD > > > > 2. Missing libcorkscrew.so. We need a different way to unwind from a > signal > > handler > > Yes, libcorkscrew.so is gone, but it is no longer needed. > > > > > For this problem, we have porting corkscrew unwind lib for providing > related > > backtrace API > > > > 3. many intercept function SIGSEGV, strcmp/memchr etc > > Please provide logs, error messages, etc. > > > On Mon, Mar 16, 2015 at 2:33 PM, chunhuili chunhuili > <[email protected] <javascript:>> wrote: > > Address sanitizer on L version, we meet some problem as blow, maybe we > miss > > some useful information for this feature, could you please show us the > > useful user guide for L ASan? > > > > For 32bit process enable Address sanitizer, Android L 5.0 address > sanitizer > > can't work, for L 5.1 java process enable ASan can work after disable > many > > inceptor functions,below is part of com.android.browser maps. > > > > 00040000-03000000 ---p 00000000 00:00 0 > > > > 03000000-18000000 rw-p 00000000 00:00 0 > > > > 18941000-275f0000 rw-s 00000000 00:04 19513 > > /dev/ashmem/DiscardableMemoryAshmemAllocator (deleted) > > > > b6ab6000-b6ae7000 r-xp 00000000 b3:11 1231 > > /system/lib/libclang_rt.asan_arm_android.so > > > > b6ae7000-b6ae8000 r--p 00030000 b3:11 1231 > > /system/lib/libclang_rt.asan_arm_android.so > > > > b6ae8000-b6ae9000 rw-p 00031000 b3:11 1231 > > /system/lib/libclang_rt.asan_arm_android.so > > > > b6f6b000-b6f70000 r-xp 00000000 b3:11 226 > > /system/bin/asan/app_process > > > > b6f70000-b6f71000 r--p 00004000 b3:11 226 > > /system/bin/asan/app_process > > > > b6f71000-b6f72000 rw-p 00005000 b3:11 226 > > /system/bin/asan/app_process > > > > > > > > Google issue about address sanitizer: > > https://code.google.com/p/address-sanitizer/issues/detail?id=326 > > > > main problem: > > > > 1. Conflict with libsigchain on Android 5.0, which also intercepts > > sigaction; On Android L 5.1, libsigchain.so no LD_PRELOAD > > > > 2. Missing libcorkscrew.so. We need a different way to unwind from a > signal > > handler > > > > For this problem, we have porting corkscrew unwind lib for providing > related > > backtrace API > > > > 3. many intercept function SIGSEGV, strcmp/memchr etc > > > > > > > > we also find information which show ASan can't work on L version. > > > > https://code.google.com/p/address-sanitizer/wiki/Android > > > > NOTE: ASan is broken on Android L. Use a K* build. This will be fixed in > one > > of the future L updates. > > > > > > > > For 64bit process, compiler is GCC 4.9, GCC 4.9 manual show it support > > address sanitizer but when set -fsanitize=address, no instrument for > > load/store. > > > > gcc 4.9.2 user guide: -fsanitize=address > > > > Enable AddressSanitizer, a fast memory error detector. Memory access > > instructions will be instrumented to detect out-of-bounds and > use-after-free > > bugs. See http://code.google.com/p/address-sanitizer/ for more details. > The > > run-time behavior can be influenced using the ASAN_OPTIONS environment > > variable; see https://code.google.com/p/address-sanitizer/wiki/Flags# > > Run-time_flags for a list of supported options > > > > -- > > 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] <javascript:>. > > 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.
