2013-05-12 1 views
3

J'ai récemment commencé à obtenir ce SIGSEGV dans notre application et j'essaie de comprendre la cause ou un solution de contournement. Notre application est Java seulement, nous n'utilisons pas le NDK donc nous ne corrompons pas la mémoire nous-mêmes.Android SIGSEGV sur Nexus 7 dans libskia près de SkCanvas :: drawPosText -> AutoDrawLooper :: next (SkDrawFilter :: Type) +96

C'est un stock Nexus 7 en cours d'exécution 4.2.2

Le bug est intermittent mais a toujours SkCanvas :: drawPosText dans la pile (un couple plein de décharges sont pile ci-dessous):

backtrace: 
    #00 pc 01010200 <unknown> 
    #01 pc 0005ce24 /system/lib/libskia.so (AutoDrawLooper::next(SkDrawFilter::Type)+96) 
    #02 pc 0005e320 /system/lib/libskia.so (SkCanvas::drawPosText(void const*, unsigned int, SkPoint const*, SkPaint const&)+152) 

Nous fait un changement récent qui rend le rendu de texte plus fréquent aux bitmaps qui sont utilisés en tant que textures OpenGL (rendu de texte sur le thread GL je pense), peut-être que cela est en quelque sorte lié?

btw juste une question générale - est-il un moyen de comprendre quelle méthode Java déclenche cet appel? Je vois divers dvmInterpret dans la pile mais je ne sais pas s'il existe un moyen de savoir quel code est en cours d'exécution.

Exemple d'erreur décharge n ° 1:

:41.380: A/libc(6861): Fatal signal 11 (SIGSEGV) at 0x01010200 (code=1), thread 6861 (ootworks.swords) 
:41.480: I/DEBUG(124): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
:41.480: I/DEBUG(124): Build fingerprint: 'google/nakasi/grouper:4.2.2/JDQ39/573038:user/release-keys' 
:41.480: I/DEBUG(124): Revision: '0' 
:41.480: I/DEBUG(124): pid: 6861, tid: 6861, name: ootworks.swords >>> com.lootworks.swords <<< 
:41.480: I/DEBUG(124): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 01010200 
:41.620: I/DEBUG(124):  r0 68445e30 r1 634b6290 r2 bee3e074 r3 01010201 
:41.620: I/DEBUG(124):  r4 bee3e070 r5 bee3e074 r6 00000006 r7 00000012 
:41.620: I/DEBUG(124):  r8 61cf4248 r9 00000000 sl 00000000 fp 634b6290 
:41.620: I/DEBUG(124):  ip 61d0e900 sp bee3dfa8 lr 402dae28 pc 01010200 cpsr 28000030 
:41.620: I/DEBUG(124):  d0 40df000040df0000 d1 c04d5064404d5064 
:41.620: I/DEBUG(124):  d2 4083ebe840ea941a d3 3f8a0000447f0000 
:41.620: I/DEBUG(124):  d4 407f000040a20000 d5 40df000000000100 
:41.620: I/DEBUG(124):  d6 413896783f2c0000 d7 c066283400000000 
:41.620: I/DEBUG(124):  d8 4103126f41816e00 d9 44a0000000000000 
:41.620: I/DEBUG(124):  d10 0000000042e54c32 d11 0000000000000000 
:41.620: I/DEBUG(124):  d12 0000000000000000 d13 0000000000000000 
:41.620: I/DEBUG(124):  d14 0000000000000000 d15 0000000000000000 
:41.620: I/DEBUG(124):  d16 0000000000000000 d17 0000000000000000 
:41.620: I/DEBUG(124):  d18 0000000000000000 d19 0000000000000000 
:41.620: I/DEBUG(124):  d20 0000000000000000 d21 3ff0000000000000 
:41.620: I/DEBUG(124):  d22 8000000000000000 d23 0000000000000000 
:41.620: I/DEBUG(124):  d24 0000000000000000 d25 8000000000000000 
:41.620: I/DEBUG(124):  d26 3ff0000000000000 d27 0100010001000100 
:41.620: I/DEBUG(124):  d28 0100010001000100 d29 0100010001000100 
:41.620: I/DEBUG(124):  d30 0000000000000005 d31 0000000000000000 
:41.620: I/DEBUG(124):  scr 60000093 
:41.630: I/DEBUG(124): backtrace: 
:41.630: I/DEBUG(124):  #00 pc 01010200 <unknown> 
:41.630: I/DEBUG(124):  #01 pc 0005ce24 /system/lib/libskia.so (AutoDrawLooper::next(SkDrawFilter::Type)+96) 
:41.630: I/DEBUG(124):  #02 pc 0005e320 /system/lib/libskia.so (SkCanvas::drawPosText(void const*, unsigned int, SkPoint const*, SkPaint const&)+152) 
:41.630: I/DEBUG(124):  #03 pc 0006b975 /system/lib/libandroid_runtime.so 
:41.630: I/DEBUG(124):  #04 pc 0006bb93 /system/lib/libandroid_runtime.so 
:41.630: I/DEBUG(124):  #05 pc 0001e290 /system/lib/libdvm.so (dvmPlatformInvoke+112) 
:41.630: I/DEBUG(124):  #06 pc 0004d411 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+396) 
:41.630: I/DEBUG(124):  #07 pc 000276a0 /system/lib/libdvm.so 
:41.630: I/DEBUG(124):  #08 pc 0002b57c /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184) 
:41.630: I/DEBUG(124):  #09 pc 0005fc31 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+272) 
:41.630: I/DEBUG(124):  #10 pc 0004c32d /system/lib/libdvm.so 
:41.630: I/DEBUG(124):  #11 pc 0003fd21 /system/lib/libdvm.so 
:41.630: I/DEBUG(124):  #12 pc 00049181 /system/lib/libandroid_runtime.so 
:41.630: I/DEBUG(124):  #13 pc 00059d57 /system/lib/libandroid_runtime.so (android::NativeInputEventReceiver::consumeEvents(_JNIEnv*, bool, long long)+246) 
:41.630: I/DEBUG(124):  #14 pc 00059e5d /system/lib/libandroid_runtime.so (android::NativeInputEventReceiver::handleEvent(int, int, void*)+92) 
:41.630: I/DEBUG(124):  #15 pc 00014cad /system/lib/libutils.so (android::Looper::pollInner(int)+516) 
:41.630: I/DEBUG(124):  #16 pc 00014d71 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+104) 
:41.630: I/DEBUG(124):  #17 pc 0005ed53 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) 
:41.630: I/DEBUG(124):  #18 pc 0001e290 /system/lib/libdvm.so (dvmPlatformInvoke+112) 
:41.630: I/DEBUG(124):  #19 pc 0004d411 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+396) 
:41.630: I/DEBUG(124):  #20 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted) 
:41.630: I/DEBUG(124): stack: 
:41.630: I/DEBUG(124):   bee3df68 00000012 
:41.630: I/DEBUG(124):   bee3df6c 40106813 /system/lib/libc.so (dlfree+34) 
:41.630: I/DEBUG(124):   bee3df70 000001bf 
:41.630: I/DEBUG(124):   bee3df74 61d0e8d0 
:41.630: I/DEBUG(124):   bee3df78 00000012 
:41.630: I/DEBUG(124):   bee3df7c 61cf4248 
:41.630: I/DEBUG(124):   bee3df80 00000000 
:41.630: I/DEBUG(124):   bee3df84 00000000 
:41.630: I/DEBUG(124):   bee3df88 634b6290 
:41.630: I/DEBUG(124):   bee3df8c bee3e074 [stack] 
:41.630: I/DEBUG(124):   bee3df90 bee3e074 [stack] 
:41.630: I/DEBUG(124):   bee3df94 402f871c /system/lib/libskia.so (SkPaint::operator=(SkPaint const&)+500) 
:41.630: I/DEBUG(124):   bee3df98 bee3e070 [stack] 
:41.630: I/DEBUG(124):   bee3df9c 00000000 
:41.630: I/DEBUG(124):   bee3dfa0 df0027ad 
:41.630: I/DEBUG(124):   bee3dfa4 00000000 
:41.630: I/DEBUG(124):  #00 bee3dfa8 00000000 
:41.630: I/DEBUG(124):   ........ ........ 
:41.630: I/DEBUG(124):  #01 bee3dfa8 00000000 
:41.630: I/DEBUG(124):   bee3dfac 00000000 
:41.630: I/DEBUG(124):   bee3dfb0 61d44ba0 
:41.630: I/DEBUG(124):   bee3dfb4 402dc324 /system/lib/libskia.so (SkCanvas::drawPosText(void const*, unsigned int, SkPoint const*, SkPaint const&)+156) 
:41.630: I/DEBUG(124):  #02 bee3dfb8 00000000 
:41.630: I/DEBUG(124):   bee3dfbc 00000002 
:41.630: I/DEBUG(124):   bee3dfc0 bee3e074 [stack] 
:41.630: I/DEBUG(124):   bee3dfc4 bee3e074 [stack] 
:41.630: I/DEBUG(124):   bee3dfc8 00000009 
:41.630: I/DEBUG(124):   bee3dfcc 00000000 
:41.630: I/DEBUG(124):   bee3dfd0 bee3e070 [stack] 
:41.630: I/DEBUG(124):   bee3dfd4 40140228 
:41.630: I/DEBUG(124):   bee3dfd8 41f6e7cb /dev/ashmem/dalvik-heap (deleted) 
:41.630: I/DEBUG(124):   bee3dfdc 00000000 
:41.630: I/DEBUG(124):   bee3dfe0 3f800000 
:41.630: I/DEBUG(124):   bee3dfe4 61ee9b00 
:41.630: I/DEBUG(124):   bee3dfe8 634b62f4 
:41.630: I/DEBUG(124):   bee3dfec 6837d668 
:41.630: I/DEBUG(124):   bee3dff0 6837d668 
:41.630: I/DEBUG(124):   bee3dff4 634b6298 
:41.630: I/DEBUG(124):   ........ ........ 
:41.640: I/DEBUG(124): memory near r0: 
:41.640: I/DEBUG(124):  68445e10 61967fec 00000000 74636120 00000013 
:41.640: I/DEBUG(124):  68445e20 00000000 68445e20 68445e20 0000002b 
:41.640: I/DEBUG(124):  68445e30 4069cb68 4013fc7c 61f0e878 00000000 
:41.640: I/DEBUG(124):  68445e40 40800000 40800000 80000000 02000000 
:41.640: I/DEBUG(124):  68445e50 00000028 0000001b 00000000 00000001 
:41.640: I/DEBUG(124):  68445e60 61db2524 00000000 0069006f 0000005b 
:41.640: I/DEBUG(124):  68445e70 00000048 00000000 68445eb4 00000001 
:41.640: I/DEBUG(124):  68445e80 00000000 40563a4d 00000000 68445eb4 
:41.640: I/DEBUG(124):  68445e90 00000002 00000000 00000000 00000000 
:41.640: I/DEBUG(124):  68445ea0 68445eb4 00000003 00000000 00000000 
:41.640: I/DEBUG(124):  68445eb0 00000000 41434f4e 00004553 68396558 
:41.640: I/DEBUG(124):  68445ec0 64bfff18 0000001b 6224e470 0000000e 
:41.640: I/DEBUG(124):  68445ed0 00000000 00000000 00000001 0000001b 
:41.640: I/DEBUG(124):  68445ee0 61f7a230 0000027e 00000000 00000000 
:41.640: I/DEBUG(124):  68445ef0 00000001 0000002b 00000018 00000000 
:41.640: I/DEBUG(124):  68445f00 61d81940 68755940 635e0690 635e06cc 
:41.640: I/DEBUG(124): memory near r1: 
:41.640: I/DEBUG(124):  634b6270 40db0000 c1390000 40b28000 c1390000 
:41.640: I/DEBUG(124):  634b6280 40980000 c1298000 407c0000 0000014b 
:41.640: I/DEBUG(124):  634b6290 403d3418 00000001 00000000 00000000 
:41.640: I/DEBUG(124):  634b62a0 00000058 00000000 00000000 00000000 
:41.640: I/DEBUG(124):  634b62b0 634b62c8 61968648 0000006c 634b62c8 
:41.640: I/DEBUG(124):  634b62c0 00000001 634b62dc 61968648 00000000 
:41.640: I/DEBUG(124):  634b62d0 634b62dc 634b6348 634b6348 00000000 
:41.640: I/DEBUG(124):  634b62e0 634b62f4 634b631c 00000000 6837d660 
:41.640: I/DEBUG(124):  634b62f0 6837d660 3f800000 00000000 00000000 
:41.640: I/DEBUG(124):  634b6300 00000000 3f800000 00000000 00000000 
:41.640: I/DEBUG(124):  634b6310 00000000 3f800000 413a9d10 00000000 
:41.640: I/DEBUG(124):  634b6320 00000000 00000200 00000080 00000000 
:41.640: I/DEBUG(124):  634b6330 00000000 00000000 00000000 00000000 
:41.640: I/DEBUG(124):  634b6340 00000000 3f00a001 00000000 61ee9af8 
:41.640: I/DEBUG(124):  634b6350 00000000 c1048000 00000000 00000000 
:41.650: I/DEBUG(124):  634b6360 00000000 00000000 41144801 00000000 
:41.650: I/DEBUG(124): memory near r2: 
:41.650: I/DEBUG(124):  bee3e054 4007ddc0 40850d4c 407fad21 4314c140 
:41.650: I/DEBUG(124):  bee3e064 407faeb5 bee3e174 61cf3240 bee3e074 
:41.650: I/DEBUG(124):  bee3e074 4003eca0 41c5863c 3f800000 00000000 
:41.650: I/DEBUG(124):  bee3e084 00000000 00000000 00000000 00000000 
:41.650: I/DEBUG(124):  bee3e094 00000000 00000000 58c2fec0 00000000 
:41.650: I/DEBUG(124):  bee3e0a4 ffffffff 3f80a0cd 40800000 05400101 
:41.650: I/DEBUG(124):  bee3e0b4 58b4d958 00000000 000001c0 634b6290 
:41.650: I/DEBUG(124):  bee3e0c4 61d0e8d0 68445e30 00000000 00000000 
:41.650: I/DEBUG(124):  bee3e0d4 00000001 634b6200 2ba413d0 00000009 
:41.650: I/DEBUG(124):  bee3e0e4 61d0e8d0 634b6290 61d44ba0 402dc288 
:41.650: I/DEBUG(124):  bee3e0f4 00000000 61cf4248 61dad370 bee3e1fc 
:41.650: I/DEBUG(124):  bee3e104 40214977 61d0e8d0 00000009 00000009 
:41.650: I/DEBUG(124):  bee3e114 00000002 61d0e2a8 408701b0 4314c110 
:41.650: I/DEBUG(124):  bee3e124 00000000 40870518 4080ae5b 4314c110 
:41.650: I/DEBUG(124):  bee3e134 2ba413d0 bee3e154 00000001 4314c120 
:41.650: I/DEBUG(124):  bee3e144 00000000 4314c140 00000000 61dc00bc 
:41.650: I/DEBUG(124): memory near r3: 
:41.650: I/DEBUG(124):  010101e0 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  010101f0 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  01010200 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  01010210 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  01010220 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  01010230 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  01010240 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  01010250 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  01010260 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  01010270 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  01010280 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  01010290 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  010102a0 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  010102b0 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  010102c0 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124):  010102d0 ffffffff ffffffff ffffffff ffffffff 
:41.650: I/DEBUG(124): memory near r4: 
:41.650: I/DEBUG(124):  bee3e050 61d0e8d0 4007ddc0 40850d4c 407fad21 
:41.650: I/DEBUG(124):  bee3e060 4314c140 407faeb5 bee3e174 61cf3240 
:41.650: I/DEBUG(124):  bee3e070 bee3e074 4003eca0 41c5863c 3f800000 
:41.650: I/DEBUG(124):  bee3e080 00000000 00000000 00000000 00000000 
:41.650: I/DEBUG(124):  bee3e090 00000000 00000000 00000000 58c2fec0 
:41.650: I/DEBUG(124):  bee3e0a0 00000000 ffffffff 3f80a0cd 40800000 
:41.650: I/DEBUG(124):  bee3e0b0 05400101 58b4d958 00000000 000001c0 
:41.650: I/DEBUG(124):  bee3e0c0 634b6290 61d0e8d0 68445e30 00000000 
:41.650: I/DEBUG(124):  bee3e0d0 00000000 00000001 634b6200 2ba413d0 
:41.650: I/DEBUG(124):  bee3e0e0 00000009 61d0e8d0 634b6290 61d44ba0 
:41.650: I/DEBUG(124):  bee3e0f0 402dc288 00000000 61cf4248 61dad370 
:41.650: I/DEBUG(124):  bee3e100 bee3e1fc 40214977 61d0e8d0 00000009 
:41.650: I/DEBUG(124):  bee3e110 00000009 00000002 61d0e2a8 408701b0 
:41.650: I/DEBUG(124):  bee3e120 4314c110 00000000 40870518 4080ae5b 
:41.650: I/DEBUG(124):  bee3e130 4314c110 2ba413d0 bee3e154 00000001 
:41.650: I/DEBUG(124):  bee3e140 4314c120 00000000 4314c140 00000000 
:41.650: I/DEBUG(124): memory near r5: 
:41.650: I/DEBUG(124):  bee3e054 4007ddc0 40850d4c 407fad21 4314c140 
:41.650: I/DEBUG(124):  bee3e064 407faeb5 bee3e174 61cf3240 bee3e074 
:41.650: I/DEBUG(124):  bee3e074 4003eca0 41c5863c 3f800000 00000000 
:41.650: I/DEBUG(124):  bee3e084 00000000 00000000 00000000 00000000 
:41.650: I/DEBUG(124):  bee3e094 00000000 00000000 58c2fec0 00000000 
:41.650: I/DEBUG(124):  bee3e0a4 ffffffff 3f80a0cd 40800000 05400101 
:41.650: I/DEBUG(124):  bee3e0b4 58b4d958 00000000 000001c0 634b6290 
:41.650: I/DEBUG(124):  bee3e0c4 61d0e8d0 68445e30 00000000 00000000 
:41.650: I/DEBUG(124):  bee3e0d4 00000001 634b6200 2ba413d0 00000009 
:41.650: I/DEBUG(124):  bee3e0e4 61d0e8d0 634b6290 61d44ba0 402dc288 
:41.650: I/DEBUG(124):  bee3e0f4 00000000 61cf4248 61dad370 bee3e1fc 
:41.650: I/DEBUG(124):  bee3e104 40214977 61d0e8d0 00000009 00000009 
:41.650: I/DEBUG(124):  bee3e114 00000002 61d0e2a8 408701b0 4314c110 
:41.650: I/DEBUG(124):  bee3e124 00000000 40870518 4080ae5b 4314c110 
:41.650: I/DEBUG(124):  bee3e134 2ba413d0 bee3e154 00000001 4314c120 
:41.650: I/DEBUG(124):  bee3e144 00000000 4314c140 00000000 61dc00bc 
:41.650: I/DEBUG(124): memory near r8: 
:41.650: I/DEBUG(124):  61cf4228 41800000 41100000 41200000 0000002b 
:41.650: I/DEBUG(124):  61cf4238 00000001 00000012 ffffffff ffffffff 
:41.650: I/DEBUG(124):  61cf4248 001d0013 001b0017 004f0003 00490048 
:41.650: I/DEBUG(124):  61cf4258 ffff0057 0000002b 00000000 00000001 
:41.650: I/DEBUG(124):  61cf4268 00000002 00000003 00000004 00000005 
:41.650: I/DEBUG(124):  61cf4278 00000006 00000007 00000008 0000002b 
:41.650: I/DEBUG(124):  61cf4288 00000000 00000000 00000000 00000000 
:41.660: I/DEBUG(124):  61cf4298 00000000 00000000 00000000 00000000 
:41.660: I/DEBUG(124):  61cf42a8 00000028 0000001b 622b1a40 00000018 
:41.660: I/DEBUG(124):  61cf42b8 00000000 00000000 00000001 0000001b 
:41.660: I/DEBUG(124):  61cf42c8 622b4c28 00000006 00000000 00000000 
:41.660: I/DEBUG(124):  61cf42d8 00000025 0000001b 62244da0 0000000c 
:41.660: I/DEBUG(124):  61cf42e8 00000000 00000000 00000001 0000001b 
:41.660: I/DEBUG(124):  61cf42f8 61f7a318 000001ca 00000000 00000000 
:41.660: I/DEBUG(124):  61cf4308 00000001 0000001b 622b41e0 0000000e 
:41.660: I/DEBUG(124):  61cf4318 00000000 00000000 00000001 0000001b 
:41.660: I/DEBUG(124): memory near fp: 
:41.660: I/DEBUG(124):  634b6270 40db0000 c1390000 40b28000 c1390000 
:41.660: I/DEBUG(124):  634b6280 40980000 c1298000 407c0000 0000014b 
:41.660: I/DEBUG(124):  634b6290 403d3418 00000001 00000000 00000000 
:41.660: I/DEBUG(124):  634b62a0 00000058 00000000 00000000 00000000 
:41.660: I/DEBUG(124):  634b62b0 634b62c8 61968648 0000006c 634b62c8 
:41.660: I/DEBUG(124):  634b62c0 00000001 634b62dc 61968648 00000000 
:41.660: I/DEBUG(124):  634b62d0 634b62dc 634b6348 634b6348 00000000 
:41.660: I/DEBUG(124):  634b62e0 634b62f4 634b631c 00000000 6837d660 
:41.660: I/DEBUG(124):  634b62f0 6837d660 3f800000 00000000 00000000 
:41.660: I/DEBUG(124):  634b6300 00000000 3f800000 00000000 00000000 
:41.660: I/DEBUG(124):  634b6310 00000000 3f800000 413a9d10 00000000 
:41.660: I/DEBUG(124):  634b6320 00000000 00000200 00000080 00000000 
:41.660: I/DEBUG(124):  634b6330 00000000 00000000 00000000 00000000 
:41.660: I/DEBUG(124):  634b6340 00000000 3f00a001 00000000 61ee9af8 
:41.660: I/DEBUG(124):  634b6350 00000000 c1048000 00000000 00000000 
:41.660: I/DEBUG(124):  634b6360 00000000 00000000 41144801 00000000 
:41.660: I/DEBUG(124): memory near ip: 
:41.660: I/DEBUG(124):  61d0e8e0 00000000 00000000 00000000 00000000 
:41.660: I/DEBUG(124):  61d0e8f0 00000000 00000000 58c2fec0 00000000 
:41.660: I/DEBUG(124):  61d0e900 ffff0000 3f80a0cd 40800000 05400101 
:41.660: I/DEBUG(124):  61d0e910 58b4d958 00000000 000001ed 0000001b 
:41.660: I/DEBUG(124):  61d0e920 62298678 0000001a 00000000 00000000 
:41.660: I/DEBUG(124):  61d0e930 00000001 00000013 61db1150 6196a4b8 
:41.660: I/DEBUG(124):  61d0e940 688774d0 0000001b 4129beb8 4013fc94 
:41.660: I/DEBUG(124):  61d0e950 77656976 7365472e 65727574 00000053 
:41.660: I/DEBUG(124):  61d0e960 4003eca0 41f6e7cb 3f800000 00000000 
:41.660: I/DEBUG(124):  61d0e970 00000000 00000000 00000000 00000000 
:41.660: I/DEBUG(124):  61d0e980 00000000 00000000 62fe03b8 00000000 
:41.660: I/DEBUG(124):  61d0e990 ffffffff 3f80a0cd 40800000 05410101 
:41.660: I/DEBUG(124):  61d0e9a0 58b4d958 00000000 0000005a 00000033 
:41.660: I/DEBUG(124):  61d0e9b0 00000000 61dae720 00000000 00000000 
:41.660: I/DEBUG(124):  61d0e9c0 00000000 00000000 00000000 00000800 
:41.660: I/DEBUG(124):  61d0e9d0 00000200 00000080 00040006 0000004b 
:41.660: I/DEBUG(124): memory near sp: 
:41.660: I/DEBUG(124):  bee3df88 634b6290 bee3e074 bee3e074 402f871c 
:41.660: I/DEBUG(124):  bee3df98 bee3e070 00000000 df0027ad 00000000 
:41.660: I/DEBUG(124):  bee3dfa8 00000000 00000000 61d44ba0 402dc324 
:41.660: I/DEBUG(124):  bee3dfb8 00000000 00000002 bee3e074 bee3e074 
:41.660: I/DEBUG(124):  bee3dfc8 00000009 00000000 bee3e070 40140228 
:41.660: I/DEBUG(124):  bee3dfd8 41f6e7cb 00000000 3f800000 61ee9b00 
:41.660: I/DEBUG(124):  bee3dfe8 634b62f4 6837d668 6837d668 634b6298 
:41.660: I/DEBUG(124):  bee3dff8 61ee9af8 00000000 00000000 00000000 
:41.660: I/DEBUG(124):  bee3e008 00000000 634b6290 00000000 00000000 
:41.660: I/DEBUG(124):  bee3e018 00000001 bee3e074 00000000 bee3e110 
:41.660: I/DEBUG(124):  bee3e028 40850d81 bee3e124 0000004c 407fbdeb 
:41.660: I/DEBUG(124):  bee3e038 bee3e05c bee3e15c bee3e064 bee3e164 
:41.660: I/DEBUG(124):  bee3e048 00000000 00000000 61d0e8d0 4007ddc0 
:41.660: I/DEBUG(124):  bee3e058 40850d4c 407fad21 4314c140 407faeb5 
:41.660: I/DEBUG(124):  bee3e068 bee3e174 61cf3240 bee3e074 4003eca0 
:41.660: I/DEBUG(124):  bee3e078 41c5863c 3f800000 00000000 00000000 
:41.660: I/DEBUG(124): code around pc: 
:41.660: I/DEBUG(124):  010101e0 ffffffff ffffffff ffffffff ffffffff 
:41.660: I/DEBUG(124):  010101f0 ffffffff ffffffff ffffffff ffffffff 
:41.660: I/DEBUG(124):  01010200 ffffffff ffffffff ffffffff ffffffff 
:41.660: I/DEBUG(124):  01010210 ffffffff ffffffff ffffffff ffffffff 
:41.660: I/DEBUG(124):  01010220 ffffffff ffffffff ffffffff ffffffff 
:41.660: I/DEBUG(124):  01010230 ffffffff ffffffff ffffffff ffffffff 
:41.660: I/DEBUG(124):  01010240 ffffffff ffffffff ffffffff ffffffff 
:41.660: I/DEBUG(124):  01010250 ffffffff ffffffff ffffffff ffffffff 
:41.660: I/DEBUG(124):  01010260 ffffffff ffffffff ffffffff ffffffff 
:41.660: I/DEBUG(124):  01010270 ffffffff ffffffff ffffffff ffffffff 
:41.660: I/DEBUG(124):  01010280 ffffffff ffffffff ffffffff ffffffff 
:41.670: I/DEBUG(124):  01010290 ffffffff ffffffff ffffffff ffffffff 
:41.670: I/DEBUG(124):  010102a0 ffffffff ffffffff ffffffff ffffffff 
:41.670: I/DEBUG(124):  010102b0 ffffffff ffffffff ffffffff ffffffff 
:41.670: I/DEBUG(124):  010102c0 ffffffff ffffffff ffffffff ffffffff 
:41.670: I/DEBUG(124):  010102d0 ffffffff ffffffff ffffffff ffffffff 
:41.670: I/DEBUG(124): code around lr: 
:41.670: I/DEBUG(124):  402dae08 e5940058 e3500000 0a000008 e590e000 
:41.670: I/DEBUG(124):  402dae18 e1a02005 e5941050 e59e3018 e12fff33 
:41.670: I/DEBUG(124):  402dae28 e3500000 03a0c001 05c4c068 08bd8070 
:41.670: I/DEBUG(124):  402dae38 e594005c e3500000 0a000007 e5903000 
:41.670: I/DEBUG(124):  402dae48 e1a01005 e1a02006 e593c008 e12fff3c 
:41.670: I/DEBUG(124):  402dae58 e5940058 e3500000 0a00000b e5845060 
:41.670: I/DEBUG(124):  402dae68 e1a00005 eb0083b5 e3500000 13a00000 
:41.670: I/DEBUG(124):  402dae78 03a00001 15840060 e8bd8070 e594205c 
:41.670: I/DEBUG(124):  402dae88 e1520000 1affffd7 e5945054 e3a01001 
:41.670: I/DEBUG(124):  402dae98 e5c41068 eafffff0 e2845004 e1a00005 
:41.670: I/DEBUG(124):  402daea8 eb0074e0 e5845000 eaffffd4 e92d45f8 
:41.670: I/DEBUG(124):  402daeb8 e3a05000 e3a07010 e1a04000 e1a08001 
:41.670: I/DEBUG(124):  402daec8 e1a02007 e1a01005 e58050b8 e28000c8 
:41.670: I/DEBUG(124):  402daed8 e3a0a001 ebff81cd e1a02007 e1a01005 
:41.670: I/DEBUG(124):  402daee8 e5c4a0d8 e28400dc ebff81c8 e5c4a0ec 
:41.670: I/DEBUG(124):  402daef8 e58450bc e2840020 e5c450c4 e58450c0 
:41.670: I/DEBUG(124): memory map around fault addr 01010200: 
:41.670: I/DEBUG(124):  (no map below) 
:41.670: I/DEBUG(124):  (no map for address) 
:41.670: I/DEBUG(124):  40000000-40014000 

Exemple décharge erreur # 2:

:14.580: A/libc(1987): Fatal signal 11 (SIGSEGV) at 0x62fc4120 (code=2), thread 1987 (ootworks.swords) 
:14.680: I/DEBUG(124): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
:14.680: I/DEBUG(124): Build fingerprint: 'google/nakasi/grouper:4.2.2/JDQ39/573038:user/release-keys' 
:14.680: I/DEBUG(124): Revision: '0' 
:14.680: I/DEBUG(124): pid: 1987, tid: 1987, name: ootworks.swords >>> com.lootworks.swords <<< 
:14.680: I/DEBUG(124): signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 62fc4120 
:14.920: I/DEBUG(124):  r0 635cb3b8 r1 636d7498 r2 bee3e50c r3 62fc4120 
:14.920: I/DEBUG(124):  r4 bee3e508 r5 bee3e50c r6 00000006 r7 00000010 
:14.920: I/DEBUG(124):  r8 636e2f50 r9 00000000 sl 00000000 fp 636d7498 
:14.920: I/DEBUG(124):  ip 00000000 sp bee3e440 lr 402dae28 pc 62fc4120 cpsr 28000010 
:14.920: I/DEBUG(124):  d0 4080000040800000 d1 44801000433a8000 
:14.920: I/DEBUG(124):  d2 0000000042ee0000 d3 0000000000000000 
:14.920: I/DEBUG(124):  d4 c1b2f480c1aef480 d5 000000003f800000 
:14.920: I/DEBUG(124):  d6 41e5100800000000 d7 42028804433e8000 
:14.920: I/DEBUG(124):  d8 428700000000000e d9 44a0000041e00000 
:14.920: I/DEBUG(124):  d10 403fda0041e51008 d11 403827485a00b037 
:14.920: I/DEBUG(124):  d12 438bbf244411d8e6 d13 403827485a00b037 
:14.920: I/DEBUG(124):  d14 431e290841c13a43 d15 4336507243365050 
:14.920: I/DEBUG(124):  d16 4050e00000000000 d17 3fe0000000000000 
:14.920: I/DEBUG(124):  d18 4061000000000000 d19 0000000000000000 
:14.920: I/DEBUG(124):  d20 0000000000000000 d21 3ff0000000000000 
:14.920: I/DEBUG(124):  d22 8000000000000000 d23 0000000000000000 
:14.920: I/DEBUG(124):  d24 0000000000000000 d25 8000000000000000 
:14.920: I/DEBUG(124):  d26 3ff0000000000000 d27 0013001300130013 
:14.920: I/DEBUG(124):  d28 0100010001000100 d29 0100010001000100 
:14.920: I/DEBUG(124):  d30 0000000000000005 d31 0000000000000000 
:14.920: I/DEBUG(124):  scr 20000093 
:14.920: I/DEBUG(124): backtrace: 
:14.920: I/DEBUG(124):  #00 pc 00001120 <unknown> 
:14.920: I/DEBUG(124):  #01 pc 0005ce24 /system/lib/libskia.so (AutoDrawLooper::next(SkDrawFilter::Type)+96) 
:14.920: I/DEBUG(124):  #02 pc 0005e320 /system/lib/libskia.so (SkCanvas::drawPosText(void const*, unsigned int, SkPoint const*, SkPaint const&)+152) 
:14.920: I/DEBUG(124):  #03 pc 0006b975 /system/lib/libandroid_runtime.so 
:14.920: I/DEBUG(124):  #04 pc 0006bb93 /system/lib/libandroid_runtime.so 
:14.920: I/DEBUG(124):  #05 pc 0001e290 /system/lib/libdvm.so (dvmPlatformInvoke+112) 
:14.920: I/DEBUG(124):  #06 pc 0004d411 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+396) 
:14.920: I/DEBUG(124):  #07 pc 000276a0 /system/lib/libdvm.so 
:14.920: I/DEBUG(124):  #08 pc 0002b57c /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184) 
:14.920: I/DEBUG(124):  #09 pc 0005ff07 /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+374) 
:14.920: I/DEBUG(124):  #10 pc 000677e1 /system/lib/libdvm.so 
:14.920: I/DEBUG(124):  #11 pc 000276a0 /system/lib/libdvm.so 
:14.920: I/DEBUG(124):  #12 pc 0002b57c /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184) 
:14.920: I/DEBUG(124):  #13 pc 0005fc31 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+272) 
:14.920: I/DEBUG(124):  #14 pc 000499fb /system/lib/libdvm.so 
:14.920: I/DEBUG(124):  #15 pc 00046871 /system/lib/libandroid_runtime.so 
:14.920: I/DEBUG(124):  #16 pc 00047533 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+390) 
:14.920: I/DEBUG(124):  #17 pc 00000db7 /system/bin/app_process 
:14.920: I/DEBUG(124):  #18 pc 0001271f /system/lib/libc.so (__libc_init+38) 
:14.920: I/DEBUG(124):  #19 pc 00000ae8 /system/bin/app_process 

Répondre

2

Résolu! Le problème était que le thread UI et le thread GL utilisaient le même objet Paint. Je me suis synchronisé pour éviter les conflits et le problème a été résolu.

1

J'ai eu le même problème sur le téléphone OEM chinois sans nom. Grâce à l'indice de mwk, j'ai pu identifier le problème dans l'une des instances de Paint qui a été mise à jour [.setColor (..); .setShadowLayer (..); .setTextSize (..)] par thread non-UI.

Je l'ai fixé en créant wrapper thread-safe qui instancie un nouvel objet Peinture à chaque fois que l'un des attributs est nécessaire pour changer:

import android.graphics.Paint; 
import android.graphics.Typeface; 

import com.google.common.base.Preconditions; 

public class ThreadSafePaint { 

    private Paint delegate; 

    public ThreadSafePaint(Paint delegate) { 
     this.delegate = Preconditions.checkNotNull(delegate); 
    } 

    public Paint getPaint() { 
     return delegate; 
    } 

    public void setAntiAlias(boolean aa) { 
     delegate = new Paint(delegate); 
     delegate.setAntiAlias(aa); 
    } 

    public Typeface setTypeface(Typeface typeface) { 
     delegate = new Paint(delegate); 
     return delegate.setTypeface(typeface); 
    } 


    public void setShadowLayer(float radius, float dx, float dy, int color) { 
     delegate = new Paint(delegate); 
     delegate.setShadowLayer(radius, dx, dy, color); 
    } 


    public int getColor() { 
     return delegate.getColor(); 
    } 

    public void setColor(int color) { 
     delegate = new Paint(delegate); 
     delegate.setColor(color); 
    } 

    public void setTextSize(float textSize) { 
     delegate = new Paint(delegate); 
     delegate.setTextSize(textSize); 
    } 

} 
Questions connexes