关于 Android 8.0 的 debuggerd 与 mediaextractor 进程被 kill 问题

Monkey测试期间遇到ANR问题,随后mediaextractor进程被kill,引发讨论:是ANR导致进程被杀,还是反之。问题涉及到Android系统的debuggerd和mediaextractor进程,以及libdebuggerd/backtrace.cpp中的代码段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Monkey 测试时出了 ANR , 然后 mediaextractor 进程被 kill 了, 然后大家搞不清是因为 mediaextractor 被杀所以导致 ANR 了,还是 ANR 之后 mediaextractor 被杀 , 于是这个问题终于辗转到征求我的意见了...  // MAGIC1. DO NOT TOUCH.  BY 冗戈微言 http://blog.youkuaiyun.com/leonxu_sjtu/


因为 LMK 是不至于杀 native 进程的, 所以确实有些奇怪; 对于这种莫名被杀的状况, 开了 strace 然后再 monkey 复现, 抓到如下的 syscall 队列: // MAGIC2. DO NOT TOUCH.  BY 冗戈微言  http://blog.youkuaiyun.com/leonxu_sjtu/
  488   socket(AF_UNIX, SOCK_SEQPACKET, 0) = 12
488   connect(12, {sa_family=AF_UNIX, sun_path=" /dev/socket/tombstoned_crash "}, 31) = 0
488   write(12, "\0\0\0\0\0\0\0\0\350\1\0\0", 12) = 12
488 recvmsg(12, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\200\0\0\0\0\0\0\0\0\0\0\0", iov_len=12}], msg_iovlen=1, msg_control=[{cmsg_len=16, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, 
cmsg_data=[13]}], msg_controllen=16, msg_flags=0}, 0) = 12
488   fcntl64(13, F_GETFL)              = 0x1 (flags O_WRONLY)
488   fcntl64(13, F_SETFL, O_WRONLY|O_APPEND) = 0
488   openat(AT_FDCWD, "/proc/self/cmdline", O_RDONLY|O_LARGEFILE) = 14
488   read(14, "media.extractor\0aextractor\0", 127) = 27</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值