#runtime-error #shared-libraries #tensorflow-lite #arm64 #null-pointer
#время выполнения -ошибка #разделяемые библиотеки #tensorflow-lite #arm64 #нулевой указатель
Вопрос:
Я разрабатываю решение Tensorflow-lite для развертывания на архитектуре ARM-64. Я скомпилировал наш код на C, используя автономный набор инструментов Android ndk. Я включил все библиотеки, которые были необходимы для компиляции, и успешно получил out.exe файл и out.so файл о компиляции. Но при попытке запустить EXE-файл на телефоне Android с архитектурой arm64 (используя среду оболочки adb и отправив все необходимые библиотеки, используемые во время компиляции и выхода.так получается) выдает ошибку разыменования нулевого указателя. Это журнал ошибок, полученный в cmd после выполнения EXE-файла-
WARNING: linker: Warning: "/data/snd/NC2/libtensorflowlite_c.so" unused DT entry: DT_RPATH (type 0xf arg 0xf68) (ignoring)
WARNING: linker: Warning: "/data/snd/NC2/libpthread.so.0" has unsupported flags DT_FLAGS_1=0x29 (ignoring unsupported flags)
WARNING: linker: Warning: "/data/snd/NC2/libpthread.so.0" has unsupported flags DT_FLAGS_1=0x29 (ignoring unsupported flags)
WARNING: linker: Warning: "/data/snd/NC2/libpthread.so.0" has unsupported flags DT_FLAGS_1=0x29 (ignoring unsupported flags)
WARNING: linker: Warning: "/data/snd/NC2/libtensorflowlite_c.so" unused DT entry: DT_RPATH (type 0xf arg 0xf68) (ignoring)
WARNING: linker: Warning: "/data/snd/NC2/libpthread.so.0" has unsupported flags DT_FLAGS_1=0x29 (ignoring unsupported flags)
Segmentation fault (core dumped)
Это полученный файл журнала —
12-04 12:25:37.178 4209 4209 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x68
12-04 12:25:37.178 4209 4209 F DEBUG : Cause: null pointer dereference
12-04 12:25:37.178 4209 4209 F DEBUG : x0 0000000000000000 x1 000000775bd15ff8 x2 0000000000000000 x3 0000000000000001
12-04 12:25:37.178 4209 4209 F DEBUG : x4 0000008000000000 x5 0000000000000000 x6 0000000080000000 x7 00000000003880f3
12-04 12:25:37.178 4209 4209 F DEBUG : x8 000000000000000a x9 00000000000819f8 x10 000000775bd08000 x11 0000000000000020
12-04 12:25:37.178 4209 4209 F DEBUG : x12 0000000000000018 x13 0000000000000008 x14 000000775c9e1cc0 x15 0000000000000008
12-04 12:25:37.179 4209 4209 F DEBUG : x16 ffffffffffffffff x17 0000000000000030 x18 000000775cf20000 x19 000000775bd899f8
12-04 12:25:37.179 4209 4209 F DEBUG : x20 0000000000000018 x21 000000000000001c x22 0000001c00000402 x23 000000775dc89000
12-04 12:25:37.179 4209 4209 F DEBUG : x24 0000000000249430 x25 000000775bd15ff8 x26 000000775dc89000 x27 000000775be9f2b0
12-04 12:25:37.179 4209 4209 F DEBUG : x28 000000775be95000 x29 0000007fe049c150
12-04 12:25:37.179 4209 4209 F DEBUG : sp 0000007fe049c140 lr 000000775dbab6c0 pc 000000775bd89a00
12-04 12:25:37.193 4209 4209 F DEBUG :
12-04 12:25:37.193 4209 4209 F DEBUG : backtrace:
12-04 12:25:37.193 4209 4209 F DEBUG : NOTE: Function names and BuildId information is missing for some frames due
12-04 12:25:37.194 4209 4209 F DEBUG : NOTE: to unreadable libraries. For unwinds of apps, only shared libraries
12-04 12:25:37.194 4209 4209 F DEBUG : NOTE: found under the lib/ directory are readable.
12-04 12:25:37.194 4209 4209 F DEBUG : NOTE: On this device, run setenforce 0 to make the libraries readable.
12-04 12:25:37.194 4209 4209 F DEBUG : #00 pc 0000000000081a00 /data/snd/NC2/libc.so.6
12-04 12:25:37.194 4209 4209 F DEBUG : #01 pc 000000000003e6bc /apex/com.android.runtime/bin/linker64 (__dl__Z19call_ifunc_resolvery 16) (BuildId: 4a559408e8da42af235cf9e971c68c35)
Список библиотек, которые я включил для кросс- компиляции, таков: libtensorflowlite_c.so ,libpthread.so.0, ld-linux-aarch64.so.1, libc.so.6, libc .so ,libdl.so.2, libm.so.6, librt.so.1,libstdc .so.6, libgcc_s.so.1. (Все эти библиотеки имеют Linux в качестве ОС и arm64 в качестве архитектуры для развертывания).