Неспособность запустить Hwasan Build на Android: Dlopen неудача: TLS символ "(null)"C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Неспособность запустить Hwasan Build на Android: Dlopen неудача: TLS символ "(null)"

Сообщение Anonymous »

Я следовал инструкциям на https://developer.android.com/ndk/guides/hwasan, чтобы включить hwasan для моего приложения:
  • Я переключился на использование общего libc ++
  • Я добавил target_compile_opation -fsanitize = hwaddress -fno-omit-frame-pointer) target_link_options ($ {target} public -fsanitize = hwaddress) к cmakelists.txt.
  • Я только для Arm64-v8a
  • . true
  • Я добавил отладку true
  • Я добавил приложение/src/main/resources/lib/wrap.sh
Несколько проверков здраво target_compile_options и target_link_options строки, приложение работает правильно.
[*] APK содержит libc ++ _ shared.so , показывая I Правильно включено shared libc ++
[*] apk/aplib/wrap.sh>
[*] apk/prap.sh>
[*] apk/aplib.shrap.sh>
[*]. .so: libfoobar.so и readelf -d libfoobar.so | grep необходим prints:

Код: Выделить всё

0x0000000000000001 (NEEDED)             Shared library: [libclang_rt.hwasan-aarch64-android.so]
0x0000000000000001 (NEEDED)             Shared library: [libandroid.so]
0x0000000000000001 (NEEDED)             Shared library: [liblog.so]
0x0000000000000001 (NEEDED)             Shared library: [libEGL.so]
0x0000000000000001 (NEEDED)             Shared library: [libOpenSLES.so]
0x0000000000000001 (NEEDED)             Shared library: [libc++_shared.so]
0x0000000000000001 (NEEDED)             Shared library: [libGLESv2.so]
0x0000000000000001 (NEEDED)             Shared library: [libm.so]
0x0000000000000001 (NEEDED)             Shared library: [libdl.so]
0x0000000000000001 (NEEDED)             Shared library: [libc.so]
< /code>
Когда я запускаю APK на моем Pixel 7 с Android 14, происходит следующая ошибка: < /p>
dlopen failed: TLS symbol "(null)" in dlopened "/apex/com.android.runtime/lib64/bionic/libclang_rt.hwasan-aarch64-android.so"

Полная ошибка:
09-13 21:43:19.312 28028 28028 D nativeloader: Load /data/app/~~VeP7A7hHnvshxaanDdLEyQ==/com.qux-GBK8s7jkWQ4TXb2mglMtUA==/lib/arm64/libfoobar.so using ns clns-4 from class loader (caller=/data/app/~~VeP7A7hHnvshxaanDdLEyQ==/com.qux-GBK8s7jkWQ4TXb2mglMtUA==/base.apk!classes2.dex): dlopen failed: TLS symbol "(null)" in dlopened "/apex/com.android.runtime/lib64/bionic/libclang_rt.hwasan-aarch64-android.so" referenced from "/apex/com.android.runtime/lib64/bionic/libclang_rt.hwasan-aarch64-android.so" using IE access model
< /code>
my .so не делает никакого смешного бизнеса в отношении TLS. Я отключил все экзотические флаги компиляции. Я выбил MINSDK до 29 из обиливания осторожности.
Любая подсказка о том, что происходит?>

Подробнее здесь: https://stackoverflow.com/questions/789 ... ymbol-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»