LSan is not enabled on Android, see https://github.com/google/sanitizers/issues/379 It's kind of on our TODO list, but I can not say when we might finally get to it.
On Wed, Oct 4, 2017 at 2:48 PM, 'Primiano Tucci' via address-sanitizer <address-sanitizer@googlegroups.com> wrote: > Hi. > I am starting a new project in Android land and setting up test coverage > with sanitizers. > I wrote a meta-test to make sure that the sanitizers are actually shouting > when there is a violation. Almost everything is working as expected (read: > failing-as-intened). The only exception is LSan on Android (N, armv7), where > both LSAN_Leak* tests silently succeed. > The same test with the same build configuration fails as expected on Linux. > Likewise, the ASan test fails as expected on Android. > I am 90% sure this is me doing something wrong but can't tell what. > I looked at the assembly and this doesn't see to be a case of clang > outsmarting the test code (i.e. the generated code actually has two leaking > malloc calls) > I am using the compiler toolchain (clang) and sanitizers lib from latest > Android's NDK (r15c), targeting their libcxx/cxxabi. > > > Repro steps: > git checkout https://android.googlesource.com/platform/external/perfetto > build/install-build-deps # will download ndk and emulators > gn gen out/android_lsan/ --args="is_lsan=true target_os=\"android\"" > ninja -C out/android_lsan/ sanitizers_unittests > build/run_android_emulator & > build/run_android_test out/android_lsan sanitizers_unittests > > These are the compiler flag used while building: > /s/perfetto/buildtools/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ > -MMD -MF obj/libtracing/sanitizers_unittests.sanitizers_unittest.o.d > -DLEAK_SANITIZER -DGTEST_LANG_CXX11=1 -I../.. > -I../../buildtools/googletest/googletest/include > -I../../buildtools/googletest/googlemock/include -gline-tables-only > -funwind-tables -fstrict-aliasing -fstack-protector -fPIC -Wa,--noexecstack > -Wformat -Wall -Werror -march=armv7-a -mfpu=neon -mthumb > -isystem/s/perfetto/buildtools/ndk/platforms/android-21/arch-arm/usr/include > --sysroot=/s/perfetto/buildtools/ndk/platforms/android-21/arch-arm -DANDROID > --target=arm-linux-androideabi -Wextra -Wno-missing-field-initializers > -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic > -Wno-gnu-include-next -Wno-gnu-statement-expression -Wno-padded > -Wno-reserved-id-macro -Wno-unused-parameter -Wno-unknown-warning-option > -fno-exceptions -fno-rtti -fno-omit-frame-pointer > -fsanitize-blacklist=../../build/sanitizers/blacklist.txt -fsanitize=leak > -fPIE -Wno-deprecated -Wno-global-constructors -Wno-missing-noreturn > -Wno-shift-sign-overflow -Wno-undef -Wno-used-but-marked-unused > -Wno-weak-vtables -fno-omit-frame-pointer -fsanitize=leak -std=c++11 > -I/s/perfetto/buildtools/ndk/sources/cxx-stl/llvm-libc++/include > -I/s/perfetto/buildtools/ndk/sources/android/support/include > -I/s/perfetto/buildtools/ndk/sources/cxx-stl/llvm-libc++abi/include -c > ../../libtracing/sanitizers_unittest.cc -o > obj/libtracing/sanitizers_unittests.sanitizers_unittest.o > > And this when linking > /s/perfetto/buildtools/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ > -Wl,-z,nocopyreloc -gcc-toolchain > /s/perfetto/buildtools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 > --sysroot=/s/perfetto/buildtools/ndk/platforms/android-21/arch-arm > --target=arm-linux-androideabi -Wl,--exclude-libs,libunwind.a > -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libc++_static.a > -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now > -Wl,--warn-shared-textrel -Wl,--fatal-warnings -fPIE -pie -fsanitize=leak > -L../../buildtools/ndk/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a > -L../../buildtools/ndk/platforms/android-21/arch-arm/usr/lib > obj/libtracing/sanitizers_unittests.sanitizers_unittest.o > obj/buildtools/googletest/googletest/src/gtest.gtest-all.o > obj/buildtools/googletest/googletest/src/gtest_main.gtest_main.o -llog > -lgcc -lc++_static -lc++abi -landroid_support -o sanitizers_unittests > > -- > 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 address-sanitizer+unsubscr...@googlegroups.com. > 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 address-sanitizer+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.