android: libffmpeg-氖图书馆加载:致命信号11。

时间:2023-01-14 00:12:05

I'm working on android app that uses ffmpeg. I've cross-compiled ffmpeg and it's working good on most devices. But on some Samsung devices i'm having Fatal signal 11 while loading libffmpeg-neon.so file.

我正在开发一个使用ffmpeg的android应用程序。我已经交叉编译了ffmpeg,它在大多数设备上都很好用。但在一些三星电子设备上,我在装载libffmpeg-氖的时候,有一个致命的信号。所以文件。

I've recompiled ffmpeg with debug symbols (--disable-stripping --enable-debug=3 and cflags += -gstabs+) and have stack trace:

我已经用调试符号重新编译了ffmpeg(—disabl - remove—enabledebug =3和cflags += -gstabs+)并有堆栈跟踪:

09-24 12:30:48.564 505-564/? D/CrashAnrDetector﹕ Build: samsung/espresso10rfxx/espresso10rf:4.2.2/JDQ39/P5100XXDMJ2:user/release-keys
Hardware: piranha
Revision: 9
Bootloader: unknown
Radio: unknown
Kernel: Linux version 3.0.31-1919150 (se.infra@SEP-107) (gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202) ) #1 SMP PREEMPT Fri Oct 18 15:31:19 KST 2013
*** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/espresso10rfxx/espresso10rf:4.2.2/JDQ39/P5100XXDMJ2:user/release-keys'
Revision: '9'
pid: 5902, tid: 5902, name: om.company.project >>> com.company.project <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
r0 00000027 r1 deadbaad r2 401d5258 r3 00000000
r4 00000000 r5 beffb36c r6 00000004 r7 41217400
r8 00000000 r9 409d21b0 sl 4005cb58 fp 00000001
ip 5f6b5468 sp beffb368 lr 401a854d pc 401a4be2 cpsr 60000030
d0 65706d666662696c d1 732e6e6f656e2d67
d2 732e30323763692e d3 2f312d6c6f6f6863
d4 0000000000000000 d5 3f80000000000000
d6 3f80000000000000 d7 3f8000003f800000
d8 0000000000000000 d9 0000000000000000
d10 0000000000000000 d11 0000000000000000
d12 0000000000000000 d13 0000000000000000
d14 0000000000000000 d15 0000000000000000
d16 0000000800000007 d17 003926e90036320b
d18 003f10a5003c1bc7 d19 0044fa6100420583
d20 006e401c00628019 d21 0085c022007a001f
d22 0707070703030303 d23 0000002e0000002b
d24 009d80280091c025 d25 00b5402e00a9402b
d26 0000002700000024 d27 0000002d0000002a
d28 006e400000628000 d29 0085c000007a0000
d30 0000000100000001 d31 0000000100000001
scr 60000090
backtrace:
#00 pc 0001abe2 /system/lib/libc.so
#01 pc 00018208 /system/lib/libc.so (abort+4)
#02 pc 008b076c /data/app-lib/com.company.project-1/libffmpeg-neon.so (__check_for_sync8_kernelhelper+68)
#03 pc 000032b3 /system/bin/linker
#04 pc 0000510b /system/bin/linker
#05 pc 0004f973 /system/lib/libdvm.so (dvmLoadNativeCode(char const*, Object*, char**)+186)
#06 pc 0006681d /system/lib/libdvm.so
#07 pc 000276e0 /system/lib/libdvm.so
#08 pc 0002b5c4 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#09 pc 0005fc79 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+272)
#10 pc 0005fca3 /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
#11 pc 0006ad49 /system/lib/libdvm.so (dvmInitClass+1036)
#12 pc 000225dc /system/lib/libdvm.so (dvmAsmSisterStart+412)
#13 pc 0002b5c4 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#14 pc 0005ff4f /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+374)
#15 pc 00067879 /system/lib/libdvm.so
#16 pc 000276e0 /system/lib/libdvm.so
#17 pc 0002b5c4 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#18 pc 0005fc79 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+272)
#19 pc 00049a43 /system/lib/libdvm.so
#20 pc 00047f43 /system/lib/libandroid_runtime.so
#21 pc 000492df /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+390)
#22 pc 00000db7 /system/bin/app_process
#23 pc 0001287f /system/lib/libc.so (__libc_init+38)
#24 pc 00000ae8 /system/bin/app_process
stack:
beffb328 400eea98
beffb32c 400ede0c
beffb330 400ebcf8 /system/bin/linker
beffb334 400ebf40 /system/bin/linker
beffb338 400ec4f4
beffb33c 400eb0ac /system/bin/linker
beffb340 401d2254 /system/lib/libc.so
beffb344 401d21b4 /system/lib/libc.so
beffb348 00000000
beffb34c 401a854d /system/lib/libc.so (_fwalk+32)
beffb350 00000001
beffb354 beffb36c [stack]
beffb358 00000004
beffb35c 41217400 [heap]
09-24 12:30:48.564 505-564/? D/CrashAnrDetector﹕ processName:com.company.project

The problem is that i can't find check_for_sync or kernelhelper in ffmpeg sources so i can't figure out what's wrong. Any thoughts?

问题是,我无法在ffmpeg源中找到check_for_sync或kernelhelper,所以我不知道是哪里出了问题。任何想法吗?

PS. I've tried readelf -Ws libffmpeg-neon.so | grep 8b076c and nothing.

我试过readelf -Ws libffmpeg-氖。所以| grep 8b076c,什么都没有。

1 个解决方案

#1


0  

I've found similar question (Android gcc 4.6 crash on __check_for_sync8_kernelhelper - ARM - FFmpeg) and android bug report (https://code.google.com/p/android/issues/detail?id=58476). So it seems to be libgcc bug (still not fixed since 2013).

我也发现了类似的问题(Android gcc 4.6在__check_for_sync8_kernelhelper - ARM - FFmpeg上崩溃)和Android bug报告(https://code.google.com/p/android/product/detail? id=58476)。因此,它似乎是libgcc bug(自2013年以来还没有修复)。

PS. Fixed by recompiling ffmpeg with ndk8c and gcc 4.4.3 while waiting for normal fix by Google

用ndk8c和gcc 4.4.3重新编译ffmpeg,同时等待谷歌的正常修复。

#1


0  

I've found similar question (Android gcc 4.6 crash on __check_for_sync8_kernelhelper - ARM - FFmpeg) and android bug report (https://code.google.com/p/android/issues/detail?id=58476). So it seems to be libgcc bug (still not fixed since 2013).

我也发现了类似的问题(Android gcc 4.6在__check_for_sync8_kernelhelper - ARM - FFmpeg上崩溃)和Android bug报告(https://code.google.com/p/android/product/detail? id=58476)。因此,它似乎是libgcc bug(自2013年以来还没有修复)。

PS. Fixed by recompiling ffmpeg with ndk8c and gcc 4.4.3 while waiting for normal fix by Google

用ndk8c和gcc 4.4.3重新编译ffmpeg,同时等待谷歌的正常修复。