You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a crash on android NDK application while AddressSanitizer processing on android x86 emulator. The asan stack trace points to GLES library as a crash reason. Unfortunately, no any possibility to skip the issue via suppressions options. The log shows the suppressions have been read but they don't work.
AddressSanitizer: reading suppressions file at /sdcard/asan.supp ==3512==AddressSanitizer Init done
halt_on_error feature doesn't work as well. I do able to change the asan options by /sdcard/asan.options (the option "redzone" is changeable as I see in the log)
1. Asan was installed on android emulator through the call from Mac machine: ~/Library/Android/ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/asan_device_setup --lib ~/Library/Android/ndk/toolchains/llvm/prebuilt/darwin-x86_64/lib64/clang/5.0.300080/lib/linux/libclang_rt.asan-i686-android.so --extra-options fast_unwind_on_malloc=0,include_if_exists=/sdcard/asan.options
2. asan.options and asan.supp files have been pushed to android /sdcard/asan.options
suppressions=/sdcard/asan.supp
verbosity=2
print_suppressions=true
halt_on_error=0 /sdcard/asan.supp
interceptor_via_lib:libGLESv2_enc
interceptor_via_lib:libGLESv2_emulation
interceptor_via_lib:libGLESv2_enc.so
interceptor_via_lib:libGLESv2_emulation.so
interceptor_via_fun:glShaderSource
interceptor_via_fun:s_glShaderSource
interceptor_via_fun:GL2Encoder::s_glShaderSource
interceptor_via_lib:/system/lib/libGLESv2_enc.so
interceptor_via_lib:/system/lib/egl/libGLESv2_emulation.so
3. Emulator info
Nexus 6
Android 6.0 x86 Marshmallow
4. clang version
~/Library/Android/ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --version
Android clang version 5.0.300080 (based on LLVM 5.0.300080)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
5. The native library was build via cmake as follows: set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address -fsanitize-recover=address -fPIC") set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
6. Stacktraces
==3300==ERROR: AddressSanitizer: heap-buffer-overflow on address 0xb0f04fcf at pc 0xb721b007 bp 0xbf860188 sp 0xbf85fd58
READ of size 403 at 0xb0f04fcf thread T0
#0 0xb721b006 (/system/lib/libclang_rt.asan-i686-android.so+0x25006) #1 0xaf3698e7 (/system/lib/libGLESv2_enc.so+0x2a8e7) #2 0xaf13bb1f (/system/lib/egl/libGLESv2_emulation.so+0xdb1f) #3 0x4d5f6867 (/data/app/com.company.app-1/lib/x86/libnative_lib.so+0x6a0f867) #4 0x4d5f66fd (/data/app/com.company.app-1/lib/x86/libnative_lib.so+0x6a0f6fd) #5 0x4d363800 (/data/app/com.company.app-1/lib/x86/libnative_lib.so+0x677c800)
symbolicated backtrace:
#00 pc 000838d6 /system/lib/libc.so (tgkill+22) #1 pc 000815f8 /system/lib/libc.so (pthread_kill+70) #2 pc 00027205 /system/lib/libc.so (raise+36) #3 pc 000209e4 /system/lib/libc.so (abort+80) #4 pc 0009f0c7 /system/lib/libclang_rt.asan-i686-android.so (__sanitizer::Abort()+87) #5 pc 000a5322 /system/lib/libclang_rt.asan-i686-android.so (__sanitizer::Die()+130) #6 pc 00088f95 /system/lib/libclang_rt.asan-i686-android.so (__asan::ScopedInErrorReport::~ScopedInErrorReport()+341) #7 pc 0008a2ac /system/lib/libclang_rt.asan-i686-android.so (__asan::ReportGenericError(unsigned long, unsigned long, unsigned long, unsigned long, bool, unsigned long, unsigned int, bool)+300) #8 pc 0002501d /system/lib/libclang_rt.asan-i686-android.so (strlen+957) #9 pc 0002a8e7 /system/lib/libGLESv2_enc.so (GL2Encoder::s_glShaderSource(void*, unsigned int, int, char const* const*, int const*)+343) #10 pc 0000db1f /system/lib/egl/libGLESv2_emulation.so (glShaderSource+79) #11 pc 06a0f867 /data/app/com.company.app-1/lib/x86/libnative_lib.so #12 pc 06a0f6fd /data/app/com.company.app-1/lib/x86/libnative_lib.so #13 pc 0677c800 /data/app/com.company.app-1/lib/x86/libnative_lib.so #14 pc 06c81472 /data/app/com.company.app-1/lib/x86/libnative_lib.so #15 pc 06c7dab9 /data/app/com.company.app-1/lib/x86/libnative_lib.so
The text was updated successfully, but these errors were encountered:
I'm not sure what's going wrong. Try a newer build of NDK, try adding
halt_on_error=0 directly to --extra-options.
Try adding "debug=1" to the option, it might print something useful.
Thank you for the very detailed report, btw.
This part shows that halt_on_error_=0 somehow did not apply:
#5 pc 000a5322 /system/lib/libclang_rt.asan-i686-android.so
(__sanitizer::Die()+130)
#6 pc 00088f95 /system/lib/libclang_rt.asan-i686-android.so
(__asan::ScopedInErrorReport::~ScopedInErrorReport()+341)
Errors from interceptors pass fatal==false here:
explicit ScopedInErrorReport(bool fatal = false)
: halt_on_error_(fatal || flags()->halt_on_error) {
There is a crash on android NDK application while AddressSanitizer processing on android x86 emulator. The asan stack trace points to GLES library as a crash reason. Unfortunately, no any possibility to skip the issue via suppressions options. The log shows the suppressions have been read but they don't work.
AddressSanitizer: reading suppressions file at /sdcard/asan.supp
==3512==AddressSanitizer Init done
halt_on_error feature doesn't work as well. I do able to change the asan options by /sdcard/asan.options (the option "redzone" is changeable as I see in the log)
1. Asan was installed on android emulator through the call from Mac machine:
~/Library/Android/ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/asan_device_setup --lib ~/Library/Android/ndk/toolchains/llvm/prebuilt/darwin-x86_64/lib64/clang/5.0.300080/lib/linux/libclang_rt.asan-i686-android.so --extra-options fast_unwind_on_malloc=0,include_if_exists=/sdcard/asan.options
2. asan.options and asan.supp files have been pushed to android
/sdcard/asan.options
suppressions=/sdcard/asan.supp
verbosity=2
print_suppressions=true
halt_on_error=0
/sdcard/asan.supp
interceptor_via_lib:libGLESv2_enc
interceptor_via_lib:libGLESv2_emulation
interceptor_via_lib:libGLESv2_enc.so
interceptor_via_lib:libGLESv2_emulation.so
interceptor_via_fun:glShaderSource
interceptor_via_fun:s_glShaderSource
interceptor_via_fun:GL2Encoder::s_glShaderSource
interceptor_via_lib:/system/lib/libGLESv2_enc.so
interceptor_via_lib:/system/lib/egl/libGLESv2_emulation.so
3. Emulator info
Nexus 6
Android 6.0 x86 Marshmallow
4. clang version
~/Library/Android/ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --version
Android clang version 5.0.300080 (based on LLVM 5.0.300080)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
5. The native library was build via cmake as follows:
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address -fsanitize-recover=address -fPIC")
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
6. Stacktraces
==3300==ERROR: AddressSanitizer: heap-buffer-overflow on address 0xb0f04fcf at pc 0xb721b007 bp 0xbf860188 sp 0xbf85fd58
READ of size 403 at 0xb0f04fcf thread T0
#0 0xb721b006 (/system/lib/libclang_rt.asan-i686-android.so+0x25006)
#1 0xaf3698e7 (/system/lib/libGLESv2_enc.so+0x2a8e7)
#2 0xaf13bb1f (/system/lib/egl/libGLESv2_emulation.so+0xdb1f)
#3 0x4d5f6867 (/data/app/com.company.app-1/lib/x86/libnative_lib.so+0x6a0f867)
#4 0x4d5f66fd (/data/app/com.company.app-1/lib/x86/libnative_lib.so+0x6a0f6fd)
#5 0x4d363800 (/data/app/com.company.app-1/lib/x86/libnative_lib.so+0x677c800)
symbolicated backtrace:
#00 pc 000838d6 /system/lib/libc.so (tgkill+22)
#1 pc 000815f8 /system/lib/libc.so (pthread_kill+70)
#2 pc 00027205 /system/lib/libc.so (raise+36)
#3 pc 000209e4 /system/lib/libc.so (abort+80)
#4 pc 0009f0c7 /system/lib/libclang_rt.asan-i686-android.so (__sanitizer::Abort()+87)
#5 pc 000a5322 /system/lib/libclang_rt.asan-i686-android.so (__sanitizer::Die()+130)
#6 pc 00088f95 /system/lib/libclang_rt.asan-i686-android.so (__asan::ScopedInErrorReport::~ScopedInErrorReport()+341)
#7 pc 0008a2ac /system/lib/libclang_rt.asan-i686-android.so (__asan::ReportGenericError(unsigned long, unsigned long, unsigned long, unsigned long, bool, unsigned long, unsigned int, bool)+300)
#8 pc 0002501d /system/lib/libclang_rt.asan-i686-android.so (strlen+957)
#9 pc 0002a8e7 /system/lib/libGLESv2_enc.so (GL2Encoder::s_glShaderSource(void*, unsigned int, int, char const* const*, int const*)+343)
#10 pc 0000db1f /system/lib/egl/libGLESv2_emulation.so (glShaderSource+79)
#11 pc 06a0f867 /data/app/com.company.app-1/lib/x86/libnative_lib.so
#12 pc 06a0f6fd /data/app/com.company.app-1/lib/x86/libnative_lib.so
#13 pc 0677c800 /data/app/com.company.app-1/lib/x86/libnative_lib.so
#14 pc 06c81472 /data/app/com.company.app-1/lib/x86/libnative_lib.so
#15 pc 06c7dab9 /data/app/com.company.app-1/lib/x86/libnative_lib.so
The text was updated successfully, but these errors were encountered: