iOS crash 崩溃问题的追踪方法
来源:互联网 发布:java把汉字转换成拼音 编辑:程序博客网 时间:2024/05/29 09:52
iOS crash 崩溃问题的追踪方法
在调试程序的时候,总是碰到crash的bug,而且一追踪就是一些汇编的代码,让人特别疑惑。
一般情况下可以通过增加两天断点来解决此问题,方法介绍如下:
基本上有错误分为以下几种类型:
signal(SIGABRT, MySignalHandler);
signal(SIGILL, MySignalHandler);
signal(SIGSEGV, MySignalHandler);
signal(SIGFPE, MySignalHandler);
signal(SIGBUS, MySignalHandler);
signal(SIGPIPE, MySignalHandler);
SIGABRT和EXC_BAD_ACCESS较为特殊,算是比较好跟进。
SIGABRT是系统报错,在memery warning之后,系统会把程序强制退出,报的就是这个错误。
EXC_BAD_ACCESS 大多数时候是内存提前释放而引起的问题,或者访问的方法不存在引起的。
追踪程序的调用stacktrace的方法,跟踪问题:
一般出错了之后出现的常见界面,再熟悉不过了。。
切换到breakpoint界面,拖动底端的slider按钮,显示调用堆栈
虽然调用堆栈已经出来了,但是都是一堆的汇编代码,无法给予明确的信息。。
剩下的就是今天要讲的问题:添加Symbol breakpoint Exception breakpoint
Exception breakpoint添加 的添加步骤
一、Exception breakpoint 的添加。
1、切换到breakpoint 视图界面
2、点击最底端的"+"按钮,添加Add Exception BreakPoint,这个就是捕获所有的exception, 貌似stackoverflow上说,bad_access那种错误无法捕获的,这个用于捕获那些SIGSEGV 的错误。
3、添加完成之后的界面。
二、Symbolic breakpoint的添加
前两步和一 基本是一样的,不截图了,只是在第二步选择的时候选 Add Symbolic BreakPoint
第三步截图;添加完成之后添加上objc_exception_throw
完成,添加完成只两个断点之后,程序中很多异常也可以捕获了,直接定位到出问题的位置。
当然程序中最好也加上异常处理的代码,可以参考这个处理,一般都是这个方式处理的
http://www.cocoachina.com/newbie/tutorial/2012/0829/4672.html
- iOS crash 崩溃问题的追踪方法
- iOS crash 崩溃问题的追踪方法
- iOS crash 崩溃问题的追踪方法
- iOS crash 崩溃问题的追踪方法
- iOS crash 崩溃问题的追踪方法
- iOS crash 崩溃问题的追踪方法
- iOS crash 崩溃问题的追踪方法
- 炒冷饭系列--iOS crash 崩溃问题的追踪方法
- iOS crash 崩溃问题的定位和追踪方法
- iOS Xcode 自带crash 崩溃问题的追踪方法
- iOS崩溃日志crash logs追踪以及调试方法
- iOS崩溃日志crash logs追踪以及调试方法
- 查看iOS Crash logs的方法(程序崩溃)
- Xcode 断点调试技巧-工程崩溃问题的追踪方法
- iOS Crash崩溃 排名
- iOS 崩溃Crash解析
- iOS WKWebview的dealloc方法崩溃问题
- 获取iOS设备上崩溃日志(Crash Log)的方法
- JNI原理与使用
- CATiledLayer讲解Part2
- C/S通信---服务器阻塞型使用
- 第九周--项目三--稀疏矩阵的三元组表示的实现及应用(2)
- Xcode7 关于http协议的修改,编译出错的解决方法
- iOS crash 崩溃问题的追踪方法
- Appium自动化测试系列1 - Appium环境的安装与配置
- 第十周--二叉树遍历的递归算法
- 项目4-广义表算法库及应用
- 第九周项目4——广义表算法库及应用(1)
- 如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)
- 第十周-项目1 - 二叉树算法库
- 第8周项目3-顺序串算法
- iOS App审核被拒的解决经历