我遇到了如下所示的崩溃
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)?它似乎在内存分配器中使用。