如何查找dlmalloc_real检测到的(SIGABRT)堆损坏的原因?

问题描述 投票:1回答:1

有时,我的应用程序停止显示->

A/libc: heap corruption detected by dlmalloc_real
        Fatal signal 6 (SIGABRT), code -6 in tid 8614 (drotorres.uareu)

我正在尝试跟踪它,并解决问题。关于错误的日志记录是:

04-23 16:36:25.749 8614-8614/com.br.ufc.pedrotorres.uareu A/libc: heap corruption detected by dlmalloc_real
    Fatal signal 6 (SIGABRT), code -6 in tid 8614 (drotorres.uareu)
04-23 16:36:25.859 395-395/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    Build fingerprint: 'samsung/j5xnlteub/j5xnlte:6.0.1/MMB29M/J510MNVJU2AQI1:user/release-keys'
    Revision: '4'
    ABI: 'arm'
    pid: 8614, tid: 8614, name: drotorres.uareu  >>> com.br.ufc.pedrotorres.uareu <<<
    signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
04-23 16:36:25.879 395-395/? A/DEBUG: Abort message: 'heap corruption detected by dlmalloc_real'
        r0 00000000  r1 000021a6  r2 00000006  r3 b6f11b94
        r4 b6f11b9c  r5 b6f11b4c  r6 0000000b  r7 0000010c
        r8 be99b8fc  r9 be99b894  sl 12cd2400  fp ffffffff
        ip 00000006  sp be99b7a8  lr b6c90f15  pc b6c93310  cpsr 400f0010
04-23 16:36:25.889 395-395/? A/DEBUG: backtrace:
        #00 pc 00044310  /system/lib/libc.so (tgkill+12)
        #01 pc 00041f11  /system/lib/libc.so (pthread_kill+32)
        #02 pc 0001ba13  /system/lib/libc.so (raise+10)
        #03 pc 00018c81  /system/lib/libc.so (__libc_android_abort+34)
        #04 pc 00016840  /system/lib/libc.so (abort+4)
        #05 pc 0001a627  /system/lib/libc.so (__libc_fatal+16)
        #06 pc 0002e221  /system/lib/libc.so (__bionic_heap_corruption_error+8)
        #07 pc 0002f2bd  /system/lib/libc.so (dlmalloc_real+628)
        #08 pc 000485a9  /system/lib/libc++.so (_Znwj+16)
        #09 pc 0010d319  /system/lib/libskia.so (_ZN16SkMallocPixelRef9NewDirectERK11SkImageInfoPvjP12SkColorTable+20)
        #10 pc 000e95eb  /system/lib/libskia.so (_ZN8SkBitmap9setPixelsEPvP12SkColorTable+30)
        #11 pc 0007f9f1  /system/lib/libandroid_runtime.so
        #12 pc 042dfd63  /system/framework/arm/boot.oat (offset 0x2fcf000)
04-23 16:36:26.309 395-395/? A/DEBUG: Tombstone written to: /data/tombstones/tombstone_09
04-23 16:36:26.309 395-395/? E/DEBUG: AM write failed: Broken pipe
android heap sigabrt corruption
1个回答
0
投票

我也遇到了这个问题,您解决了吗?与我的情况相比,您的情况要好一些,有要检查的日志,我的ErrorLog根本找不到任何日志来检查发生错误的位置。编译器只告诉我发生了此错误。根据我掌握的信息,我只知道内存堆有问题。我在JNI函数中返回了一个jstring,返回后立即崩溃。我检查了返回值正确,资源也被释放,我现在很困惑,

© www.soinside.com 2019 - 2024. All rights reserved.