gpt4 book ai didi

Android原生libc信号11(SIGSEGV),代码2(SEGV_ACCERR),故障地址

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:46:50 25 4
gpt4 key购买 nike

添加以下代码后我一直遇到崩溃:

class AudioPolicyService :
public BinderService<AudioPolicyService>,
public BnAudioPolicyService,
public IBinder::DeathRecipient
{
friend class BinderService<AudioPolicyService>;

//[....]
class TestingClz : public virtual RefBase {
public:
TestingClz (String8 name, const wp<AudioPolicyService>& service){}
virtual TestingClz() {}
};

sp<TestingClz> mTestingClz;
} // End of class AudioPolicyService

//[....]

void AudioPolicyService::onFirstRef()
{
...
TestingClz = new TestingClz(String8("test"), this);
}

我遇到了以下崩溃:

02-03 22:21:17.971 367 367 F DEBUG : Revision: '0'

02-03 22:21:17.971 367 367 F DEBUG : ABI: 'arm'

02-03 22:21:17.971 367 367 F DEBUG : pid: 981, tid: 981, name: mediaserver >>> /system/bin/mediaserver <<<

02-03 22:21:17.972 367 367 F DEBUG : signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xb6e594d8

02-03 22:21:17.976 367 367 F DEBUG : r0 b6e594d8 r1 becfa970 r2 00000000 r3 b6e4d812

02-03 22:21:17.976 367 367 F DEBUG : r4 b5fd6a1c r5 becfa970 r6 becfa96c r7 b5fd69d4

02-03 22:21:17.976 367 367 F DEBUG : r8 becfa968 r9 b6ad8e2d sl 00000000 fp becfabbc

02-03 22:21:17.976 367 367 F DEBUG : ip b6b0ec24 sp becfa958 lr b6b03849 pc b6b03604 cpsr 80010030

02-03 22:21:17.980 367 367 F DEBUG :

02-03 22:21:17.980 367 367 F DEBUG : backtrace:

02-03 22:21:17.980 367 367 F DEBUG : #00 pc 0000e604 /system/lib/libutils.so (android::RefBase::weakref_type::incWeak(void const*)+11)

02-03 22:21:17.980 367 367 F DEBUG : #01 pc 0000e845 /system/lib/libutils.so (android::RefBase::createWeak(void const*) const+6)

02-03 22:21:17.980 367 367 F DEBUG : #02 pc 000060ad /system/lib/libaudiopolicyservice.so

02-03 22:21:17.980 367 367 F DEBUG : #03 pc 0000620b /system/lib/libaudiopolicyservice.so

02-03 22:21:17.980 367 367 F DEBUG : #04 pc 0000232d /system/bin/mediaserver

02-03 22:21:17.980 367 367 F DEBUG : #05 pc 00001b8f /system/bin/mediaserver

02-03 22:21:17.981 367 367 F DEBUG : #06 pc 00017359 /system/lib/libc.so (__libc_init+44)

02-03 22:21:17.981 367 367 F DEBUG : #07 pc 00001e0c /system/bin/mediaserver

02-03 22:21:18.088 367 367 F DEBUG :

02-03 22:21:18.088 367 367 F DEBUG : Tombstone written to: /data/tombstones/tombstone_01

将地址映射到行后,它指向我更改的行。SEGV_ACCERR 表示映射对象的权限无效。我想知道它是否是由android mprotect引起的?因为它看起来不像是正常的崩溃。有没有人经历过同样的失败?非常感谢!

更新:好的,如果我进行整个构建并刷新系统和引导镜像,似乎不会发生崩溃。那么,要更改 android 原生服务,我们总是需要完整构建吗?

天龙

最佳答案

结果:如果我进行整个构建并刷新系统和引导镜像,似乎不会发生崩溃。但是,我仍然想知道是否有某种保护机制可以在运行时记录和验证类大小。即使我们替换了 .so 库,二进制地址映射似乎仍然没有更新。

感谢您提供更多信息!

关于Android原生libc信号11(SIGSEGV),代码2(SEGV_ACCERR),故障地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36709693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com