2017-11-29 11 views
1

일주일 이상 동안 코드를 기록하고 디버깅 할 수 있었지만 원인을 파악하기 위해 충돌을 재현하지 못했습니다. 그래서 나는 누군가가이 충돌 이전에 경험을했거나 충돌 보고서가 의미하는 바를 알기를 바랍니다.Android 네이티브 오류 보고서

여러 충돌 보고서가 있으며 모두 "시스템 충돌시/시스템/라이브러리/libcutils.so"이지만 백 트레이스는 다소 동일합니다.

나는 대부분의 보고서는 다음과 같은

(dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)

이 몇 미리

(dvmCallMethodA(Thread*, Method const*, Object*, bool, JValue*, jvalue const*)+354)

감사를 통지 않았다!

1 차 보고서

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
Build fingerprint: 'Honeywell/helsinki/CT50L0N-CS13S:4.4.4/KTU84P/59.02.02.0025:user/release-keys' 
Revision: '0' 
pid: 26459, tid: 26459, name: ps.myapp >>> com.myapp <<< 
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 3f800004 
    r0 3f800004 r1 3f800001 r2 00000000 r3 3f800004 
    r4 6531b4a0 r5 6531b450 r6 00000000 r7 574dfbcc 
    r8 bec60038 r9 574dfbc4 sl 414b0938 fp bec6004c 
    ip 4058db90 sp bec60028 lr 4046f75f pc 4008e5d8 cpsr 00070010 
    d0 0000000000000000 d1 0000000000000000 
    d2 0000000000000000 d3 0000000000000000 
    d4 0000000000000000 d5 4014000000000000 
    d6 0000000a41200000 d7 3f8000003f800000 
    d8 000002ac3f800000 d9 000001913f000000 
    d10 0000000042e00000 d11 0000000000000000 
    d12 0000000000000000 d13 0000000000000000 
    d14 0000000000000000 d15 0000000000000000 
    d16 64696f72646e614c d17 70532f747865742f 
    d18 006f00630065006e d19 0062006f006d002e 
    d20 00610065006c0069 d21 002e007300700070 
    d22 006e006500760065 d23 0074006500720074 
    d24 b94377ce858a5d48 d25 0009000a000a0009 
    d26 0000000000000000 d27 0000000000000000 
    d28 3ff0000000000000 d29 0000000000000000 
    d30 000a000a000a000a d31 0000000000000000 
    scr 68000013 

backtrace: 
    #00 pc 000035d8 /system/lib/libcutils.so (android_atomic_inc+8) 
    #01 pc 000c475b /system/lib/libskia.so (SkPaint::operator=(SkPaint const&)+42) 
    #02 pc 0002034c /system/lib/libdvm.so (dvmPlatformInvoke+112) 
    #03 pc 00050fcf /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398) 
    #04 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted) 

2 차 보고서는

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
Build fingerprint: 'Honeywell/helsinki/CT50L0N-CS13S:4.4.4/KTU84P/59.02.02.0025:user/release-keys' 
Revision: '0' 
pid: 30873, tid: 30873, name: ps.myapp >>> com.myapp <<< 
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 3f800004 
    r0 3f800004 r1 00000000 r2 ffffffff r3 3f800004 
    r4 3f800000 r5 66adc3e8 r6 00000000 r7 574dfbcc 
    r8 bec60028 r9 574dfbc4 sl 414b0938 fp bec6003c 
    ip 4058db8c sp bec60010 lr 404494c3 pc 4008e5fc cpsr 00070010 
    d0 0000000000000000 d1 0000000000000000 
    d2 0000000000000000 d3 0000000000000000 
    d4 0000000000000000 d5 4014000000000000 
    d6 0000000a41200000 d7 3f8000003f800000 
    d8 3f8000003f800000 d9 4434000044130000 
    d10 0000000044440000 d11 0000000000000000 
    d12 0000000000000000 d13 0000000000000000 
    d14 0000000000000000 d15 0000000000000000 
    d16 64696f72646e614c d17 70532f747865742f 
    d18 006f00630065006e d19 0062006f006d002e 
    d20 00610065006c0069 d21 002e007300700070 
    d22 006e006500760065 d23 0074006500720074 
    d24 3f8fcf331262ca11 d25 0016001500140013 
    d26 0000000000000000 d27 0000000000000000 
    d28 011e011d011c011b d29 0120011f011d011e 
    d30 0016001600160016 d31 0000000000000000 
    scr 68000013 

backtrace: 
    #00 pc 000035fc /system/lib/libcutils.so (android_atomic_dec+12) 
    #01 pc 0009e4bf /system/lib/libskia.so (SkPixelRef::globalUnref()+6) 
    #02 pc 000c47a9 /system/lib/libskia.so (SkPaint::operator=(SkPaint const&)+120) 
    #03 pc 0002034c /system/lib/libdvm.so (dvmPlatformInvoke+112) 
    #04 pc 00050fcf /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398) 
    #05 pc 000297e0 /system/lib/libdvm.so 
    #06 pc 00030c6c /system/lib/libdvm.so (dvmMterpStd(Thread*)+76) 
    #07 pc 0002e304 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184) 
    #08 pc 000632c7 /system/lib/libdvm.so (dvmCallMethodA(Thread*, Method const*, Object*, bool, JValue*, jvalue const*)+354) 
    #09 pc 0004eafb /system/lib/libdvm.so 
    #10 pc 00008ed5 /data/app-lib/com.myapp-2/libmonodroid.so (java_interop_jnienv_call_nonvirtual_void_method_a+34) 
    #11 pc 00015410 <unknown> 

3 보고서

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
Build fingerprint: 'Honeywell/helsinki/CT50L0N-CS13S:4.4.4/KTU84P/59.02.02.0025:user/release-keys' 
Revision: '0' 
pid: 30873, tid: 30873, name: ps.myapp >>> com.myapp <<< 
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 3f800004 
    r0 3f800004 r1 00000000 r2 ffffffff r3 3f800004 
    r4 3f800000 r5 66adc3e8 r6 00000000 r7 574dfbcc 
    r8 bec60028 r9 574dfbc4 sl 414b0938 fp bec6003c 
    ip 4058db8c sp bec60010 lr 404494c3 pc 4008e5fc cpsr 00070010 
    d0 0000000000000000 d1 0000000000000000 
    d2 0000000000000000 d3 0000000000000000 
    d4 0000000000000000 d5 4014000000000000 
    d6 0000000a41200000 d7 3f8000003f800000 
    d8 3f8000003f800000 d9 4434000044130000 
    d10 0000000044440000 d11 0000000000000000 
    d12 0000000000000000 d13 0000000000000000 
    d14 0000000000000000 d15 0000000000000000 
    d16 64696f72646e614c d17 70532f747865742f 
    d18 006f00630065006e d19 0062006f006d002e 
    d20 00610065006c0069 d21 002e007300700070 
    d22 006e006500760065 d23 0074006500720074 
    d24 3f8fcf331262ca11 d25 0016001500140013 
    d26 0000000000000000 d27 0000000000000000 
    d28 011e011d011c011b d29 0120011f011d011e 
    d30 0016001600160016 d31 0000000000000000 
    scr 68000013 

backtrace: 
    #00 pc 000035fc /system/lib/libcutils.so (android_atomic_dec+12) 
    #01 pc 0009e4bf /system/lib/libskia.so (SkPixelRef::globalUnref()+6) 
    #02 pc 000c47a9 /system/lib/libskia.so (SkPaint::operator=(SkPaint const&)+120) 
    #03 pc 0002034c /system/lib/libdvm.so (dvmPlatformInvoke+112) 
    #04 pc 00050fcf /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398) 
    #05 pc 000297e0 /system/lib/libdvm.so 
    #06 pc 00030c6c /system/lib/libdvm.so (dvmMterpStd(Thread*)+76) 
    #07 pc 0002e304 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184) 
    #08 pc 000632c7 /system/lib/libdvm.so (dvmCallMethodA(Thread*, Method const*, Object*, bool, JValue*, jvalue const*)+354) 
    #09 pc 0004eafb /system/lib/libdvm.so 
    #10 pc 00008ed5 /data/app-lib/com.myapp-2/libmonodroid.so (java_interop_jnienv_call_nonvirtual_void_method_a+34) 
    #11 pc 00015410 <unknown> 
+0

이 안드로이드 7.0 이상 기기에 일어난 경우 : addr2line 사용에 대한 당신에 참조 할 수? –

+0

이것은 Android 4.4.4 – MartDavious

답변

0

안드로이드는 Zygote의 사용 Zygote가 금지 된 메모리 영역에 대한 일부 프로세스 액세스를 의미하는 "신호 11"을 던지면 앱을 시작합니다.

보고서에 SkPixelRef이 표시됩니다. 프로젝트에 OpenGL을 사용하고 있습니까? 그렇게했다면 OpenGL이 스레드 독립적으로 작동한다는 것을 기억하십시오. 그러므로 이런 종류의 문제를 피하려면 생성자에 OpenGL이 사용하는 모든 변수를 초기화하십시오.

프로그램 액세스 및 실패 영역을 확인하려면 android_print/Log.Debug을 사용하는 것이 좋습니다.

addr2line을 사용하면 더 유용한 정보를 찾을 수있는 주소로 변환 할 수 있습니다.이 정보는 Android-NDK와 함께 제공됩니다.

How to use addr2line in Android

+0

에 대한 것입니다. 입력에 감사드립니다. OpenGL을 사용하고 있지 않지만, 응용 프로그램에서 jpg를 사용하고 있습니다. – MartDavious

+0

어떻게 android_print/Log.Debug를 사용합니까 – MartDavious

+0

@MartDavious, 늦게까지 죄송합니다. Android.Util.Log.Debug() 메소드를 사용하는 것이 좋습니다. –