2011-02-14 2 views
0

내가 안드로이드에서 실행하려고, 안드로이드를위한 C의 \의 C++ 네이티브 응용 프로그램을 구축하고있는 고장 요지의 deadbaad 얻기 그러나 나는 다음과 같은 오류 얻을 :신호 11 (SIGSEGV), 안드로이드

 
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 

나는 노력을 1.6, 2.1, 2.2 안드로이드 : 나는 결과

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

내가 모든 플랫폼이 무엇입니까 다음 있어보다 주소 0001072aarm-eabi-addr2line을 사용할 수 있습니다.

내 프로그램이 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)); 
} 

그리고 당신은 자바와 JNI 사이의 메모리를 공유하는 나에게 어떤 완전한 증거 메커니즘을 알려 주시기 바랍니다 수 있습니다.

답변

0

크기는 wordsPage입니다. 범위 밖의 모든 색인에 문제가 있습니까? dalvik.vm.checkjni=true을 사용하도록 설정하고 더 많은 정보를 참조하십시오.

+3

howe 에뮬레이터에서 이것을 얻으려면 dalvik.vm, .checkjni = true를 사용 설정 하시겠습니까? – JPM