Android SIGABRT的可能原因及开启手机Log日志

本文深入探讨了在Bugly中遇到的SIGABRT崩溃问题,详细分析了其在不同设备和系统版本(如Android6.0.1、Android10)上的表现及可能的原因,包括内存管理错误、堆越界、断言失败等,并提供了针对性的解决方案,如修改工程配置、检查内存使用情况等。

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

问题:bugly中崩溃分析SIGABRT

手机信息:

例一:

设备机型:模拟器SIMULATOR ANDROID

系统版本:Android 6.0.1,level 23

ROM:OnePlus/OnePlus2

CPU架构:x86

例二:

设备机型:荣耀 BKL AL20

系统版本:Android 10,level 29

ROM:HuaWei/EMOTION

CPU架构:aarch64

解决方案
abort program
SIG是信号名的通用前缀。ABRT是abort program的缩写。

当操作系统发现不安全的情况时,它能够对这种情况进行更多的控制,必要的话,它能要求进程进行清理工作。在调试造成此信号的底层错误时,并没有什么妙招。 如 cocos2d 或 UIKit 等框架通常会在特定的前提条件没有满足或一些糟糕的情况出现时调用 C 函数 abort (由它来发送此信号)。

如果是iOS系统:
发生在UIApplication WillTerminate 时,是主动退出应用时发生的,所以对用户没什么实际影响。
iOS10访问相册时发生,目前只发生在iOS10+系统,需要修改工程plist文件,加入访问权限提示信息。
补充:iOS 10 has updated privacy policy and implemented new privacy rules. You have to update your Info.plist app with this following fields by authorisation asked.

注:NE (Native layer exception) 发生在Linux用户空间的异常,通常是由C/C++代码和库文件引起的。比如内核发出的NE信号(SIGILL、 SIGABRT、 SIGBUS等)

其他可能原因

1、double free/free 没有初始化的地址或者错误的地址
2、堆越界
3、assert

Andorid开启手机Log日志

360手机:1、在桌面点击拨号,在拨号盘输入“*20121220#”,进入工程模式; 2、看到日志输出等级,点进去 Log print enable 选 enable Java log level 选 LOGV C and C++ log level 选 LOGV Kernel log level 选 KERN_DEBUG

华为手机:打开log开关的方法是:进入拨号界面输入:*#*#2846579#*#* 依次选择ProjectMenu---后台设置----LOG设置---LOG开关 点击打开

小米:第一种打开拨号盘输入*#*#284#*#*就会提示你正在生成LOG文件;第二种单开设置,关于手机,找到处理器连点就会提示你正在生成LOG文件!第一种适用于MIUI5全机型和MIUI6,第二种仅适用于MIUI6!

魅族手机:找到手机设置-->辅助功能-->开发者选项-->高级日志输出-->全部允许

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅次

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值