赞
踩
6. EXC_BAD_INSTRUCTION:此类异常通常由于线程执行非法指令导致。
此类的crash,应该去审视自己APP初始化时做的事情是否正确,是否在主线程请求了网络,或者其他耗时的事情卡住了正常初始化流程。系统通常允许一个APP从启动到可以响应用户事件的事件最多为5s,如果超过了5s,APP就会被系统终止掉。在launch、resume、suspend、quit时都会有响应的时间要求。在highlight thread里面我们可以看到被终止时调用到的位置,xxxxAppDelegate加上行号。一般在连接xcode做调试时,为了方便,系统会暂时禁用掉watchdog,所以此类问题的发现需要使用正常的启动模式。
2)0xbad22222:该编码表示VoIP(Voice over Internet Protocol)应用因为过于频繁重启而被终止。
3)0xdead10cc:读作“dead lock”,该代码表示应用因为在后台运行时占用系统资源,如通讯录数据不被释放而被终止。4)0xdeadfa11:读作“dead fall”,该代码表示应用是被用户强制退出的。根据苹果文档,强制退出发生在用户长按开关按钮直到出现“滑动来关机”,然后长按home按钮。强制退出将产生包含0xdeadfa11异常编码崩溃日志,因为大多数强制退出是因为应用阻塞了界面。通常在bug造成系统无法响应时可以采长按电源键,当屏幕出现关机确认画面时按下home键即可关闭当前程序。
5)0xbaaaaaad:用户按住home键和音量键,获取当前内存状态,不代表崩溃,它仅仅是包含了整个系统某一时刻的运行状态。
6)Low Memory termination。跟一般的crash结构不太一样,通常有Free pages、Wired pages、Purgeable pages、largest process组成,同时会列出当前时刻系统运行所有进程的信息。APP在运行过程中,系统内存紧张时会先发出警告,同时把后台挂起的程序终止掉,最中如果还是内存不够的话就会终止掉当前前台的进程。当接受到内存警告的时候,我们应该释放尽可能多的内存,crash其实也可以看做是对APP的一种保护。
7)0xc00010ff:程序执行大量耗费CPU和GPU的运算,导致设备过热,出发系统过热保护被系统终止。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。