iOS 定位代码中崩溃位置

作者: ChinaGoodStaff | 来源:发表于2016-10-25 15:08 被阅读773次

在调试程序的时候,总是碰到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 大多数时候是内存提前释放而引起的问题,或者访问的方法不存在引起的。

一、Exception breakpoint 的添加。
1.切换到breakpoint 视图界面
1.png
2.点击最底端的"+"按钮,添加Add Exception BreakPoint,这个就是捕获所有的exception, 貌似stackoverflow上说,bad_access那种错误无法捕获的,这个用于捕获那些SIGSEGV 的错误。
2.png 屏幕快照 2016-10-25 下午2.48.08.png
3.添加完成之后的界面。
屏幕快照 2016-10-25 下午3.04.31.png
二、Symbolic breakpoint的添加

前两步和一 基本是一样的,不截图了,只是在第二步选择的时候选 Add Symbolic BreakPoint

第三步截图;添加完成之后添加上objc_exception_throw

屏幕快照 2016-10-25 下午2.52.27.png

完成,添加完成只两个断点之后,程序中很多异常也可以捕获了,直接定位到出问题的位置。

相关文章

  • iOS 定位代码中崩溃位置

    在调试程序的时候,总是碰到crash的bug,而且一追踪就是一些汇编的代码,让人特别疑惑。一般情况下可以通过增加两...

  • iOS崩溃日志,崩溃位置定位

    原文链接:http://blog.csdn.net/hero_wqb/article/details/504627...

  • iOS定位崩溃代码

    崩溃信息一般会崩到main方法里面,这时我们定位不到具体的位置 这个方法可能很多地方用到,不太好准确定位 全局断点...

  • 性能分析(持续更新中)

    开发中遇到的问题 崩溃问题 崩溃如何复现 如何定位到代码行上传dSYM文件之后,发生的崩溃可以定位到代码行定位到代...

  • iOS崩溃捕捉和分析

    主题: 如何捕捉发布版本ipa的崩溃, 并定位崩溃代码 一、 崩溃日志 1 什么是崩溃日志iOS设备上的应用闪退时...

  • iOS崩溃crash大解析

    前言 iOS崩溃是让iOS开发人员比较头痛的事情,app崩溃了,说明代码写的有问题,这时如何快速定位到崩溃的地方很...

  • iOS崩溃crash大解析(推荐收藏)

    前言 iOS崩溃是让iOS开发人员比较头痛的事情,app崩溃了,说明代码写的有问题,这时如何快速定位到崩溃的地方很...

  • 如何处理iOS崩溃crash大解析

    前言 iOS崩溃是让iOS开发人员比较头痛的事情,app崩溃了,说明代码写的有问题,这时如何快速定位到崩溃的地方很...

  • iOS问题:出现崩溃问题,崩溃定位在汇编而不是具体代码

    iOS问题:出现崩溃问题,崩溃定位在汇编而不是具体代码 项目场景: 做一个软件,当接收到较大图片时,软件就会崩溃退...

  • iOS如何快速定位崩溃代码

    当我们开发的时候会经常遇到程序崩溃的现象,有的时候程序是崩溃到具体的一行代码里面,我们可以很方便的进行调试,...

网友评论

  • ChinaGoodStaff:这个用起来确实方便多了,以后还会添加更好的一些方法

本文标题:iOS 定位代码中崩溃位置

本文链接:https://www.haomeiwen.com/subject/xqmruttx.html