Получение сигнала 11 (SIGSEGV), ошибка addr deadbaad в Android - PullRequest
0 голосов
/ 14 февраля 2011

Я создаю нативное приложение C \ C ++ для Android, пытаюсь запустить его на Android, но получаю следующую ошибку:

02-14 14:05:40.261: INFO/DEBUG(31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
02-14 14:05:40.261: INFO/DEBUG(31): Build fingerprint: 'generic/sdk/generic/:2.2/FRF91/43546:eng/test-keys'
02-14 14:05:40.280: INFO/DEBUG(31): pid: 467, tid: 467  >>> com.keypoint_tech.adaptxt.inputmethod.core.testAdaptxt <<<
02-14 14:05:40.280: INFO/DEBUG(31): signal 11 (SIGSEGV), fault addr deadbaad
02-14 14:05:40.292: INFO/DEBUG(31):  r0 00000000  r1 00000000  r2 00000027  r3 00000000
02-14 14:05:40.292: INFO/DEBUG(31):  r4 00000000  r5 deadbaad  r6 00001728  r7 44f35010
02-14 14:05:40.292: INFO/DEBUG(31):  r8 430be000  r9 43170000  10 0000001d  fp beb92724
02-14 14:05:40.302: INFO/DEBUG(31):  ip ffffffff  sp beb92448  lr afd154c5  pc afd11dc4  cpsr 40000030
02-14 14:05:40.851: INFO/DEBUG(31):          #00  pc 00011dc4  /system/lib/libc.so
02-14 14:05:40.851: INFO/DEBUG(31):          #01  pc 00006ecc  /system/lib/libcutils.so
02-14 14:05:40.871: INFO/DEBUG(31): code around pc:
02-14 14:05:40.881: INFO/DEBUG(31): afd11da4 1c2bd00b 2d00682d e026d1fb 2b0068db 
02-14 14:05:40.891: INFO/DEBUG(31): afd11db4 4e17d003 51a02001 4d164798 24002227 
02-14 14:05:40.891: INFO/DEBUG(31): afd11dc4 f7fb702a 2106ee14 ef10f7fc 05592380 
02-14 14:05:40.900: INFO/DEBUG(31): afd11dd4 6091aa01 1c116054 94012006 eab6f7fc 
02-14 14:05:40.910: INFO/DEBUG(31): afd11de4 2200a905 f7fc2002 f7fbeac2 2106ee00 
02-14 14:05:40.910: INFO/DEBUG(31): code around lr:
02-14 14:05:40.910: INFO/DEBUG(31): afd154a4 b0834a0d 589c447b 26009001 686768a5 
02-14 14:05:40.910: INFO/DEBUG(31): afd154b4 220ce008 2b005eab 1c28d003 47889901 
02-14 14:05:40.922: INFO/DEBUG(31): afd154c4 35544306 d5f43f01 2c006824 b003d1ee 
02-14 14:05:40.922: INFO/DEBUG(31): afd154d4 bdf01c30 0002ae7c 000000d4 1c0fb5f0 
02-14 14:05:40.922: INFO/DEBUG(31): afd154e4 43551c3d a904b087 1c16ac01 604d9004 
02-14 14:05:40.922: INFO/DEBUG(31): stack:
02-14 14:05:40.932: INFO/DEBUG(31):     beb92408  000006fd  
02-14 14:05:40.961: INFO/DEBUG(31):     beb9240c  afd1453b  /system/lib/libc.so
02-14 14:05:40.961: INFO/DEBUG(31):     beb92410  afd40498  /system/lib/libc.so
02-14 14:05:40.961: INFO/DEBUG(31):     beb92414  afd41c14  /system/lib/libc.so
02-14 14:05:40.961: INFO/DEBUG(31):     beb92418  00000000  
02-14 14:05:40.961: INFO/DEBUG(31):     beb9241c  afd154c5  /system/lib/libc.so
02-14 14:05:40.961: INFO/DEBUG(31):     beb92420  6f737265  
02-14 14:05:40.981: INFO/DEBUG(31):     beb92424  afd1450d  /system/lib/libc.so
02-14 14:05:40.981: INFO/DEBUG(31):     beb92428  50776569  
02-14 14:05:40.981: INFO/DEBUG(31):     beb9242c  afd40328  /system/lib/libc.so
02-14 14:05:40.981: INFO/DEBUG(31):     beb92430  00000000  
02-14 14:05:40.981: INFO/DEBUG(31):     beb92434  00001728  
02-14 14:05:40.981: INFO/DEBUG(31):     beb92438  44f35010  /dev/ashmem/mspace/dalvik-heap/2 (deleted)
02-14 14:05:40.991: INFO/DEBUG(31):     beb9243c  afd147ab  /system/lib/libc.so
02-14 14:05:40.991: INFO/DEBUG(31):     beb92440  df002777  
02-14 14:05:40.991: INFO/DEBUG(31):     beb92444  e3a070ad  
02-14 14:05:41.002: INFO/DEBUG(31): #00 beb92448  696a202c  
02-14 14:05:41.002: INFO/DEBUG(31):     beb9244c  202c746e  
02-14 14:05:41.002: INFO/DEBUG(31):     beb92450  746e696a  
02-14 14:05:41.002: INFO/DEBUG(31):     beb92454  696a202c  
02-14 14:05:41.012: INFO/DEBUG(31):     beb92458  2029746e  
02-14 14:05:41.012: INFO/DEBUG(31):     beb9245c  fffffbdf  
02-14 14:05:41.012: INFO/DEBUG(31):     beb92460  beb9264c  [stack]
02-14 14:05:41.012: INFO/DEBUG(31):     beb92464  400092e8  /dev/ashmem/mspace/dalvik-heap/zygote/0 (deleted)
02-14 14:05:41.012: INFO/DEBUG(31):     beb92468  00000002  
02-14 14:05:41.012: INFO/DEBUG(31):     beb9246c  af906ecf  /system/lib/libcutils.so
02-14 14:05:41.031: INFO/DEBUG(31): #01 beb92470  beb9264c  [stack]
02-14 14:05:41.031: INFO/DEBUG(31):     beb92474  af906ecf  /system/lib/libcutils.so
02-14 14:05:41.041: INFO/DEBUG(31):     beb92478  00001893  
02-14 14:05:41.052: INFO/DEBUG(31):     beb9247c  beb9264c  [stack]
02-14 14:05:41.052: INFO/DEBUG(31):     beb92480  400092e8  /dev/ashmem/mspace/dalvik-heap/zygote/0 (deleted)
02-14 14:05:41.052: INFO/DEBUG(31):     beb92484  45168728  /dev/ashmem/mspace/dalvik-heap/2 (deleted)
02-14 14:05:41.052: INFO/DEBUG(31):     beb92488  0000005f  
02-14 14:05:41.052: INFO/DEBUG(31):     beb9248c  8084a30f  /system/lib/libdvm.so
02-14 14:05:41.052: INFO/DEBUG(31):     beb92490  44f35018  /dev/ashmem/mspace/dalvik-heap/2 (deleted)
02-14 14:05:41.070: INFO/DEBUG(31):     beb92494  00000063  
02-14 14:05:41.070: INFO/DEBUG(31):     beb92498  474f6028  
02-14 14:05:41.070: INFO/DEBUG(31):     beb9249c  00000063  
02-14 14:05:41.080: INFO/DEBUG(31):     beb924a0  00000063  
02-14 14:05:41.091: INFO/DEBUG(31):     beb924a4  beb924d0  [stack]
02-14 14:05:41.091: INFO/DEBUG(31):     beb924a8  40009408  /dev/ashmem/mspace/dalvik-heap/zygote/0 (deleted)
02-14 14:05:41.091: INFO/DEBUG(31):     beb924ac  8081c020  /system/lib/libdvm.so
02-14 14:05:41.102: INFO/DEBUG(31):     beb924b0  00008cdc  /system/bin/app_process
02-14 14:05:41.112: INFO/DEBUG(31):     beb924b4  00002337  
02-14 14:05:42.000: INFO/WindowManager(59): WIN DEATH: Window{44f9e8f0 com.keypoint_tech.adaptxt.inputmethod.core.testAdaptxt/com.keypoint_tech.adaptxt.inputmethod.core.testAdaptxt.TestAdaptxt paused=false}
02-14 14:05:42.012: INFO/ActivityManager(59): Process com.keypoint_tech.adaptxt.inputmethod.core.testAdaptxt (pid 467) has died.
02-14 14:05:42.121: INFO/BootReceiver(59): Copying /data/tombstones/tombstone_06 to DropBox (SYSTEM_TOMBSTONE)
02-14 14:05:42.191: INFO/UsageStats(59): Unexpected resume of com.android.launcher while already resumed in com.keypoint_tech.adaptxt.inputmethod.core.testAdaptxt
02-14 14:05:42.271: WARN/InputManagerService(59): Got RemoteException sending setActive(false) notification to pid 467 uid 10032

Я пытался использовать arm-eabi-addr2line с адресом 0001072a, чемя получил следующий результат

/usr/local/google/home/digit/android/main/cupcake/android/bionic/libc/unistd/brk.c:45

Я получаю это для всех платформ: Android 1.6, 2.1 и 2.2.

Моя программа выходит из строя, когда я пытаюсь получить значения из буферакоторый заполняется на стороне JNI.

Вот следующий код, который я использую для получения значения из заполненного буфера на стороне JNI.

for(int j = 0; j < count; j++)
{
    len = outBuf.getInt();
    CharBuffer cbuf = outBuf.asCharBuffer();
    CharSequence cS = cbuf.subSequence(0, len);
    wordsPage[j] = cS.toString();
    outBuf.position(outBuf.position()+ (len*2));
}

И не могли бы вы рассказать мне какой-нибудь механизм полной проверкиразделить память между Java и JNI.

1 Ответ

0 голосов
/ 21 мая 2011

Какой у тебя wordsPage размер?Есть ли какие-либо проблемы с индексом?Предлагаю вам включить dalvik.vm.checkjni=true и просмотреть дополнительную информацию.

...