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

举报
帅次 发表于 2021/12/23 00:50:35 2021/12/23
【摘要】 问题:bugly中崩溃分析SIGABRT 手机信息: 例一: 设备机型:模拟器SIMULATOR ANDROID 系统版本:Android 6.0.1,level 23 ROM:OnePlus/OnePlus2 CPU架构:x86 例二: 设备机型:荣耀 BKL AL20 系统版本:Android 10,level 2...

问题: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!

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

 

文章来源: shuaici.blog.csdn.net,作者:帅次,版权归原作者所有,如需转载,请联系作者。

原文链接:shuaici.blog.csdn.net/article/details/108277139

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。