2010-11-23 11 views
0

Ich habe skia nativen Absturz bei der Rückkehr ~SkSpriteBlitter(), unten ist der Grabstein und Stack-Trace. Hat jemand dieses Problem schon einmal?Ich habe skia nativen Absturz bei der Rückkehr ~ SkSpriteBlitter()

[tombstone] 
signal 11 (SIGSEGV), fault addr 00000000 
r0 bec3a434 r1 ab248078 r2 ab248080 r3 ab2494dc 
r4 bec3a558 r5 bec3a434 r6 002ae6b0 r7 bec3a558 
r8 00000000 r9 bec3a5e8 10 bec3a434 fp 00000000 
ip 000002dc sp bec3a2d8 lr ab169da4 pc 00000000 

Stack Trace: 
signal 11 (SIGSEGV), fault addr 00000000 
r0 bec3a434 r1 ab248078 r2 ab248080 r3 ab2494dc 
r4 bec3a558 r5 bec3a434 r6 002ae6b0 r7 bec3a558 
r8 00000000 r9 bec3a5e8 10 bec3a434 fp 00000000 
ip 000002dc sp bec3a2d8 lr ab169da4 pc 00000000 cpsr 20010010 
     #00 pc 00000000 
     #01 pc 00069da0 /system/lib/libskia.so 

code around pc: 

code around lr: 
ab169d84 e793100c e1a04000 e5900008 e2812008 
ab169d94 e5842000 ebffa1ac e1a00004 ebffd501 
ab169da4 e1a00004 e8bd8010 000df754 00000278 
ab169db4 e59f302c e59fc02c e92d4010 e08f3003 
ab169dc4 e1a04000 e793000c e5841008 e2802008 

stack: 
    bec3a298 bec3a434 [stack] 
    bec3a29c 000000ff 
    bec3a2a0 00145a70 [heap] 
    bec3a2a4 ab1978d0 /system/lib/libskia.so 
    bec3a2a8 ab249d8c /system/lib/libskia.so 
    bec3a2ac 46d9bc40 /dev/ashmem (deleted) 
    bec3a2b0 47367c40 /dev/pmem 
    bec3a2b4 00000001 
    bec3a2b8 000003c0 
    bec3a2bc 000003c0 
    bec3a2c0 000000f0 
    bec3a2c4 00145a70 [heap] 
    bec3a2c8 bec3a434 [stack] 
    bec3a2cc 002ae6b0 [heap] 
    bec3a2d0 df002777 
    bec3a2d4 e3a070ad 
#01 bec3a2d8 bec3a5e8 [stack] 
    bec3a2dc bec3a434 [stack] 
    bec3a2e0 00000000 
    bec3a2e4 ab174d90 /system/lib/libskia.so 
    bec3a2e8 00000140 
    bec3a2ec bec3a434 [stack] 
    bec3a2f0 00000124 
    bec3a2f4 0000003a 
    bec3a2f8 00000003 
    bec3a2fc 00000000 
    bec3a300 bec3a434 [stack] 
    bec3a304 00000000 
    bec3a308 8096c560 /system/lib/libdvm.so 
    bec3a30c afa013ad /system/lib/liblog.so 
    bec3a310 bec3a734 [stack] 
    bec3a314 465f4347 
    bec3a318 4d5f524f 
    bec3a31c 4f4c4c41 

[stack trace] 
signal 11 (SIGSEGV), fault addr 00000000 
r0 bec3a434 r1 ab248078 r2 ab248080 r3 ab2494dc 
r4 bec3a558 r5 bec3a434 r6 002ae6b0 r7 bec3a558 
r8 00000000 r9 bec3a5e8 10 bec3a434 fp 00000000 
ip 000002dc sp bec3a2d8 lr ab169da4 pc 00000000 

Stack Trace: 
    RELADDR FUNCTION        FILE:LINE 
    00000000 (unknown)       (unknown) 
    v------> ~SkSpriteBlitter      external/skia/src/core/SkBlitter_Sprite.cpp:29 
    00069da0 SkSpriteBlitter::~SkSpriteBlitter() external/skia/src/core/SkBlitter_Sprite.cpp:29 

Stack Data: 
    ADDR  VALUE  FILE:LINE/FUNCTION 
    bec3a298 bec3a434 
    bec3a29c 000000ff 
    bec3a2a0 00145a70 
    bec3a2a4 ab1978d0 external/skia/src/core/SkSpriteBlitter_ARGB32.cpp:313 
         SkSpriteBlitter::ChooseD32(SkBitmap const&, SkPaint const&, void*, unsigned int) 
    bec3a2a8 ab249d8c external/skia/include/core/SkPixelRef.h:36 
         ~SkPixelRef 
    bec3a2ac 46d9bc40 (unknown) 
         (unknown) 
    bec3a2b0 47367c40 (unknown) 
         (unknown) 
    bec3a2b4 00000001 
    bec3a2b8 000003c0 
    bec3a2bc 000003c0 
    bec3a2c0 000000f0 
    bec3a2c4 00145a70 
    bec3a2c8 bec3a434 
    bec3a2cc 002ae6b0 
    bec3a2d0 df002777 
    bec3a2d4 e3a070ad 
    bec3a2d8 bec3a5e8 
    bec3a2dc bec3a434 
    bec3a2e0 00000000 
    bec3a2e4 ab174d90 external/skia/src/core/SkDraw.cpp:1093 
         SkDraw::drawBitmap(SkBitmap const&, SkMatrix const&, SkPaint const&) const 
    bec3a2e8 00000140 
    bec3a2ec bec3a434 
    bec3a2f0 00000124 
    bec3a2f4 0000003a 
    bec3a2f8 00000003 
    bec3a2fc 00000000 
    bec3a300 bec3a434 
    bec3a304 00000000 
    bec3a308 8096c560 ??:0 
         ?? 
    bec3a30c afa013ad system/core/liblog/logd_write.c:209 
         __android_log_print 
    bec3a310 bec3a734 
    bec3a314 465f4347 
    bec3a318 4d5f524f 
    bec3a31c 4f4c4c41 

Antwort

1

Es ist ein Nullzeiger in einer C-Bibliothek. Irgendwo im Stapel rufen Sie etwas an, das etwas aufruft, das schließlich in die Bibliothek ruft. Sehen Sie sich sorgfältig alle Parameter an, die Sie in dieser Kette von Anrufen verwenden. Meistens ist einer von ihnen falsch, was dazu führt, dass die Bibliothek barfuß wird.

Überprüfen Sie auch alle Rückgabewerte. Etwas überrascht, dass die Bibliothek nicht von Symbolen befreit wurde.

+0

Oder vielleicht nicht. Es gibt andere Anzeichen dafür, dass es in libskia eine Racebedingung gibt (zwischen dem Freigeben und dem Zuweisen von Speicher), die dieses Segv unter Last verursacht. –