com.github.unidbg.arm.backend.BackendException: unicorn.UnicornException: Invalid instruction (UC_ERR_INSN_INVALID)
at com.github.unidbg.arm.backend.UnicornBackend.emu_start(UnicornBackend.java:378)
at com.github.unidbg.AbstractEmulator.emulate(AbstractEmulator.java:380)
at com.github.unidbg.thread.Function32.run(Function32.java:39)
at com.github.unidbg.thread.MainTask.dispatch(MainTask.java:19)
at com.github.unidbg.thread.UniThreadDispatcher.run(UniThreadDispatcher.java:172)
at com.github.unidbg.thread.UniThreadDispatcher.runMainForResult(UniThreadDispatcher.java:96)
at com.github.unidbg.AbstractEmulator.runMainForResult(AbstractEmulator.java:340)
at com.github.unidbg.arm.AbstractARMEmulator.eFunc(AbstractARMEmulator.java:229)
at com.github.unidbg.linux.AbsoluteInitFunction.call(AbsoluteInitFunction.java:55)
at com.github.unidbg.linux.LinuxModule.callInitFunction(LinuxModule.java:141)
at com.github.unidbg.linux.AndroidElfLoader.loadInternal(AndroidElfLoader.java:180)
at com.github.unidbg.linux.AndroidElfLoader.loadInternal(AndroidElfLoader.java:62)
at com.github.unidbg.spi.AbstractLoader.load(AbstractLoader.java:233)
at com.github.unidbg.linux.android.dvm.BaseVM.loadLibrary(BaseVM.java:236)
Caused by: unicorn.UnicornException: Invalid instruction (UC_ERR_INSN_INVALID)
at unicorn.Unicorn.emu_start(Native Method)
at com.github.unidbg.arm.backend.UnicornBackend.emu_start(UnicornBackend.java:376)
... 179 more
debugger break at: 0x4004450c @ Function32 address=0x400404d0, arguments=[]
>>> r0=0x0 r1=0x0 r2=0xbffff6a8 r3=0x1 r4=0x4017ddf0 r5=0xbffff700 r6=0x1 r7=0x4017defc r8=0xfffffb27 sb=0x10 sl=0x40177e4c fp=0x0 ip=0x4017defc
>>> SP=0xbffff6e0 LR=RX@0x400406b0[libmmcrypto.so]0x406b0 PC=RX@0x4004450c[libmmcrypto.so]0x4450c cpsr: N=0, Z=1, C=1, V=0, T=0, mode=0b10000
>>> d0=0x0(0.0) d1=0x3220302034203720(3.002229861217884E-67) d2=0x3436333832203236(3.5366761868402984E-57) d3=0x3120323938343135(4.583358096989596E-72) d4=0x2030203020302030(1.2027122125173386E-153) d5=0x2030203020302030(1.2027122125173386E-153) d6=0x2030203020302030(1.2027122125173386E-153) d7=0x2030203020302030(1.2027122125173386E-153)
>>> d8=0x0(0.0) d9=0x0(0.0) d10=0x0(0.0) d11=0x0(0.0) d12=0x0(0.0) d13=0x0(0.0) d14=0x0(0.0) d15=0x0(0.0)
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - architecture is WINDOWS_64 os.name is windows 10
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is natives/windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is demumble.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource natives/windows_64/demumble.dll
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is demumble.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource windows_64/demumble.dll
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is META-INF/lib/windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is demumble.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource META-INF/lib/windows_64/demumble.dll
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - architecture is WINDOWS_64 os.name is windows 10
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is natives/windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is disassembler.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource natives/windows_64/disassembler.dll
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is disassembler.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource windows_64/disassembler.dll
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is META-INF/lib/windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is disassembler.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource META-INF/lib/windows_64/disassembler.dll
最初还以为是识别不到动态链接库,试图将so文件添加到classpath,浪费很多时间。
后来通过反复排查,最终发现是jcl-over-slf4j依赖冲突导致。
将罪魁包"org.slf4j:jcl-over-slf4j"exclusion解决