Android NDk崩溃:信号11(SIGSEGV),代码2(SEGV_ACCERR)

时间:2015-11-03 07:41:45

标签: android memory-management crash sigsegv

我遇到了如下所示的崩溃

ABI: 'arm'
pid: 18141, tid: 18159, name: CrRendererMain
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xeee81f7c
    r0 32a7c240  r1 00000000  r2 60ca8f7c  r3 f6faeec0
    r4 32a7c240  r5 eee824b6  r6 00000001  r7 2aef812c
    r8 eee824ac  r9 eee824b6  sl 2aef8120  fp 00000001
    ip dafc3074  sp eee81f68  lr da0839f9  pc da0837a0  cpsr 600d0030
    d0  7149f2ca00000014  d1  7149f2ca7149f2ca
    d2  7149f2ca00000000  d3  0000000000000000
    d4  0000000000000000  d5  00004afae0000000
    d6  4395f6004395f400  d7  418d1eb8418d1eb8
    d8  0000000000000000  d9  0000000000000000
    d10 0000000000000000  d11 0000000000000000
    d12 0000000000000000  d13 0000000000000000
    d14 0000000000000000  d15 0000000000000000
    d16 0000000000000000  d17 0000000000000000
    d18 3fc55554f93c9426  d19 be11bac113a6537c
    d20 be0835142e68d40c  d21 4000000000000000
    d22 3ef0305a55023d91  d23 bebbbd4111fe030a
    d24 3ff0000000000000  d25 bf66c16b8a684294
    d26 3f11566a3ee18867  d27 3fefdfdff4ea4e81
    d28 3c0714a522f51248  d29 bee02aee1d71e070
    d30 3ef033111f53dcb4  d31 bf77381d00000000
    scr 62000010

根据内存映射,SP指向它没有权限的地址。 18159是当前流程的一部分。我想知道一个进程是否可能对堆栈内存没有任何权限?在这种情况下会发生这种情况吗? ....

    eedaf000-eedbefff rw-         0     10000  [stack:18165]
    eedbf000-eeddffff ---         0     21000
    eede0000-eedfffff r--         0     20000  /dev/ashmem (deleted)
    eee00000-eee7ffff rw-         0     80000  [anon:libc_malloc]
    eee80000-eee80fff ---         0      1000
--->eee81000-eee81fff ---         0      1000  [stack:18159]
    eee82000-eef84fff rw-         0    103000
    eef85000-eefa4fff rw-         0     20000  /dev/ashmem/dalvik-rosalloc page map (deleted)

add2line并没有给我很多信息。我可以怀疑代码谁调用mprotect(addr,len,PROT_NONE)?它似乎在内存分配器中使用。

0 个答案:

没有答案