Xcode开发如何在调试时轻松找到程序在哪里崩溃?

起因

有不少人在评论发一些崩溃信息,问我程序怎么回事,其实如果你知道了程序崩溃在哪行代码崩溃了,就很容易定位问题了。android开发看崩溃log就能看到具体哪行代码出问题,那在iOS开发怎么快速定位到具体哪行代码崩溃呢。

步骤1

在xcode添加一个通用断点就行了。方法如下:

点击项目导航断点那,如图

步骤2

点击+号:

一步步按上面图完成操作,再运行程序

自动就断点到这里来了,Log信息是:

1 2013-05-20 11:14:19.635 GestureRecognizer[1491:c07] -[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x7a88df0
2 2013-05-20 11:15:21.148 GestureRecognizer[1491:c07] *** Terminating app due to uncaught exception ‘NSInvalidArgumentException‘, reason: ‘-[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x7a88df0‘

这样很简单就能发现程序崩溃是因为value没有 isEqualToString方法。

如果我没加上面这个通用的断点,那程序会直接断点到main函数去。

PS:这个方法只能绝大部分这样的崩溃。有少部分错误是断不到了。

时间: 2024-09-28 02:55:56

Xcode开发如何在调试时轻松找到程序在哪里崩溃?的相关文章

VS2005调试时无法找到调试信息解决方法

调试C++程序的时候出现,无法找到.exe的调试信息,或者调试信息不匹配.未使用调试信息生成二进制文件.解决方法:打开菜单项目->项目属性页: 1.选择配置属性->链接器->调试->生成调试信息改为“ 是”: 2.选择配置属性->C/C++ ->常规->调试信息格式 改为用于“编辑并继续”的程序数据库(/ZI): 3.选择配置属性->C/C++ ->优化->优化改为 自定义. 重新编译,运行.OK.

gdb单步调试时top看不到所调试的进程

最近用gdb调试程序时,新开窗口用top命令查看调试进程的内存占用情况,但总遇到在单步调试时,由于程序执行太慢,top看不到调试进程的情况. 后查明,这是由于默认进入top时,各进程是按照CPU的占用量来排序的,单步调试程序执行太慢,有时cpu占用量为0. 解决办法:在top窗口用键盘敲"u",然后输入当前用户名,则top窗口显示的都为该用户下的进程信息. 其他一些有用也很有意思的top视图 多U多核CPU监控在top基本视图中,按键盘数字"1",可监控每个逻辑CP

Xcode开发和调试总结

Xcode是iOS开发主要的工具.IDE.关于Xcode的细枝末节,可以参考苹果的官方文档或者众多的说明.此文档主要涉及常用开发和调试注意事项,参考版本为Xcode 5.1.1. 目标设置: 在此,我就不区分Project和Target了,这两方面有很多共同的设置,所以只需要了解需要设置哪些子项就可以了. Deployment Target:设置支持的最低设备版本,这个根据代码的API支持情况而定 Base SDK:理论上应该设置为最新版本的SDK,以支持最高版本 Identity:设置Bund

Xcode开发技巧——调试

断点(Breakpoint)断点是调试中非常重要的一个手段.由于在执行到某些代码前需要执行许多其它代码,不可能用单步跟踪一条一条执行过来,这时只要在需要暂停的地方设置一个断点,然后让程序运行,当执行到这个断点位置时不需要用户干预就会暂停并返回集成调试程序.断点必须位于可执行代码行上,凡设置在注释,空白行,变量说明上的都是无效的. 一.概述 1.掌握调试技巧,调试技术 最基本,最重要的调试手段包括:单步跟踪,断点,变量观察等. 单步跟踪(Step)所谓单步跟踪是指一行一行地执行程序,每执行一行语句

【转载】Xcode 4.1~4.6 + iOS 5、iOS 6免证书(iDP)开发+真机调试+生成IPA全攻略

原创文章,欢迎分享:未经许可,不得转载:版权所有,侵权必究 开发环境使用的是目前为止最新的稳定版软件:Mac OS X Lion 10.7 + Xcode 4.1 目前Xcode 4.2 Preview版也已经发布,据说其修改方法跟4.1非常类似,只改动了一行代码,请参看参考文章的第二篇.本文仍以4.1版本为例. 更新:现在Xcode 4.2正式版和iOS 5均已发布,下面补充上4.2的修改方法.(2011-10-24) 各步骤会标明版本,比如(Xcode4.1请执行)和(Xcode4.2请执行

5个Xcode开发调试技巧

转自Joywii的博客,原文:Four Tips for Debugging in XCode Like a Bro 1.Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问题.该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址. 怎么开启僵尸对象呢?首先打开 Edit Scheme (或者通过热键?<),然后选择Diagnostics选项卡,

(转)5个Xcode开发调试技巧

1.Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问题.该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址. 怎么开启僵尸对象呢?首先打开“Edit Scheme”(或者通过热键?<),然后选择Diagnostics选项卡,勾选Enable NSZombie Objects选项. 现在我们可以关掉ARC来测试重复释放的问题.异常和更容易产生

加速Java应用开发速度1——加速spring/hibernate应用调试时启动速度

在调试spring应用时,动辄几十秒,甚至有的应用上分钟的启动速度,会让整个调试速度慢下来了.等待时间让人抓狂.不知道大家是如何加速spring应用调试速度的,在此分享下我的一次加速过程.欢迎补充指正. 环境 配置: thinkpad t410 内存:4G内存 CPU:Intel P8700 双核2.53GHZ 系统:WIN XP 开发工具:Intellij IDEA 12.0.4 Maven + spring3.2.3 + hibernate4.2.2+Spring data jpa 1.3.

当用Myeclipse8.6集成开发环境,进行JavaWeb项目开发的时候,用集成开发环境中的run Server进行程序调试时,出现如下错误解决方案

当用Myeclipse8.6集成开发环境,进行JavaWeb项目开发的时候,用集成开发环境中的run Server进行程序调试时,出现如下错误解决方案: 'Starting Tomcat v6.0 Server at localhost'has encountered a problem 错误提示: Several ports(8080,8009)required by Tomcatv6.0 Server at localhost are already in use.The server ma