Using ndk, I compiled code written in C. The program is a conversion of files in ecm format, here is the native code: link . I decided to do with JNI for optimization reasons, because the program requires a lot of processor processing.
Files for conversion can be very large, from 200 to 700 mb. Everything works fine, but when you try to convert files larger than 600 MB, closer to the end of the conversion process, the application stops with the following error message:
11-13 20:24:36.775: WARN/dalvikvm(1468): ReferenceTable overflow (max=512) 11-13 20:24:36.775: WARN/dalvikvm(1468): Last 10 entries in JNI local reference table: 11-13 20:24:36.775: WARN/dalvikvm(1468): 502: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.775: WARN/dalvikvm(1468): 503: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.775: WARN/dalvikvm(1468): 504: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.775: WARN/dalvikvm(1468): 505: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.775: WARN/dalvikvm(1468): 506: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.775: WARN/dalvikvm(1468): 507: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.775: WARN/dalvikvm(1468): 508: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.786: WARN/dalvikvm(1468): 509: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.786: WARN/dalvikvm(1468): 510: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.786: WARN/dalvikvm(1468): 511: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.786: WARN/dalvikvm(1468): JNI local reference table summary (512 entries): 11-13 20:24:36.786: WARN/dalvikvm(1468): 512 of Ljava/lang/Class; 164B (1 unique) 11-13 20:24:36.786: WARN/dalvikvm(1468): Memory held directly by tracked refs is 164 bytes 11-13 20:24:36.786: ERROR/dalvikvm(1468): Failed adding to JNI local ref table (has 512 entries) 11-13 20:24:36.786: INFO/dalvikvm(1468): "Thread-9" prio=5 tid=8 RUNNABLE 11-13 20:24:36.786: INFO/dalvikvm(1468): | group="main" sCount=0 dsCount=0 s=N obj=0x46523c48 self=0x30e960 11-13 20:24:36.786: INFO/dalvikvm(1468): | sysTid=1506 nice=0 sched=0/0 cgrp=default handle=2542616 11-13 20:24:36.786: INFO/dalvikvm(1468): | schedstat=( 200042694099 61087921121 333928 ) 11-13 20:24:36.786: INFO/dalvikvm(1468): at unecm4droid.kiio.es.mainUECM.invokeNativeFunction(Native Method) 11-13 20:24:36.786: INFO/dalvikvm(1468): at unecm4droid.kiio.es.mainUECM.access$10(mainUECM.java:490) 11-13 20:24:36.786: INFO/dalvikvm(1468): at unecm4droid.kiio.es.mainUECM$11.run(mainUECM.java:735) 11-13 20:24:36.786: ERROR/dalvikvm(1468): VM aborting 11-13 20:24:36.795: INFO/DEBUG(121): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 11-13 20:24:36.795: INFO/DEBUG(121): Build fingerprint: 'google/passion/passion/mahimahi:2.2/FRF91/43546:user/release-keys' 11-13 20:24:36.795: INFO/DEBUG(121): pid: 1468, tid: 1506 >>> unecm4droid.kiio.es <<< 11-13 20:24:36.795: INFO/DEBUG(121): signal 11 (SIGSEGV), fault addr deadd00d 11-13 20:24:36.795: INFO/DEBUG(121): r0 00000026 r1 afd14699 r2 afd14699 r3 00000000 11-13 20:24:36.795: INFO/DEBUG(121): r4 802a3448 r5 802a3448 r6 0030e960 r7 0030e9b0 11-13 20:24:36.795: INFO/DEBUG(121): r8 464c9b48 r9 43277fa4 10 43277f8c fp 464c9ed8 11-13 20:24:36.795: INFO/DEBUG(121): ip deadd00d sp 464c9130 lr afd16155 pc 802424e0 cpsr 20000030 11-13 20:24:36.795: INFO/DEBUG(121): d0 643a64696f72646e d1 6472656767756265 11-13 20:24:36.795: INFO/DEBUG(121): d2 465117b046511767 d3 465117b04651170a 11-13 20:24:36.795: INFO/DEBUG(121): d4 465117b0465117b0 d5 465117b0465117b0 11-13 20:24:36.795: INFO/DEBUG(121): d6 465117b0465117b0 d7 465117b0465117b0 11-13 20:24:36.795: INFO/DEBUG(121): d8 4198000041b80000 d9 43e0000000000000 11-13 20:24:36.795: INFO/DEBUG(121): d10 41dfffffffc00000 d11 c3e0000000000000 11-13 20:24:36.795: INFO/DEBUG(121): d12 0000000000000000 d13 0000000000000000 11-13 20:24:36.795: INFO/DEBUG(121): d14 0000000000000000 d15 0000000000000000 11-13 20:24:36.795: INFO/DEBUG(121): d16 47d7202800000000 d17 c083180000000000 11-13 20:24:36.795: INFO/DEBUG(121): d18 4035000000000000 d19 0000000000000000 11-13 20:24:36.795: INFO/DEBUG(121): d20 3ff0000000000000 d21 8000000000000000 11-13 20:24:36.795: INFO/DEBUG(121): d22 c035000000000000 d23 ff00080008000700 11-13 20:24:36.795: INFO/DEBUG(121): d24 ff00080008000700 d25 ff00080008000700 11-13 20:24:36.795: INFO/DEBUG(121): d26 0100010001000100 d27 0100010001000100 11-13 20:24:36.795: INFO/DEBUG(121): d28 0100010001000100 d29 3ff0000000000000 11-13 20:24:36.795: INFO/DEBUG(121): d30 0000000000000000 d31 3ff0000000000000 11-13 20:24:36.795: INFO/DEBUG(121): scr 80000012 11-13 20:24:36.865: INFO/DEBUG(121):
I tried to debug my own process using gdb, but I only pass this message when the application crashes:
Program received signal SIGSTOP, Stopped (signal).
Can anyone help me find more information about the error?
thanks for everyone.
java c android
KuRouZu
source share