xocde快速定位崩溃代码

起因

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

步骤1

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

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

步骤2

点击+号:

一步步按上面图完成操作。

再运行程序

自动就断点到这里来了,

log信息是:

[html] view plaincopy

  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:这个方法只能绝大部分这样的崩溃。有少部分错误是断不到了。

原文地址:http://blog.csdn.net/totogo2010/article/details/8949440

时间: 2024-10-01 12:30:24

xocde快速定位崩溃代码的相关文章

Xcode7的发布后的crash跟踪,轻松定位崩溃代码 Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS

Xcode7中苹果为我们增加了两个重要的debug相关功能.了解之后觉得非常实用,介绍给大家. 1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS? EXC_BAD_ACCESS一直是很多开发者的噩梦,因为这个错误很不直观,出现后往往要花很长时间才能定位到错误.苹果这次带来了革命性的提升. 在项目的Scheme中Diagnostics下,选中enable address sanitizer(注意选中后Xcode会重新编译整个项目). 这样设置后,如果再出现类

Andoid 利用ndk-stack定位崩溃代码

Android NDK自从版本R6开始, 提供了一个工具ndk-stack( 在目录{ndk_root}/中 ). 这个工具能自动分析dump下来的crash log, 将崩溃时的调用内存地址和c++代码一行一行对应起来. 执行命令ndk-stack --help Usage: ndk-stack -sym <path> [-dump <path>] -sym Contains full path to the root directory for symbols. -dump C

android 代码混淆导致问题,快速定位

代码混淆导致问题,快速定位 在代码混淆打包时,屏蔽了用到的第三方库,以及常规的android混淆屏蔽,但生成的apk,运行还是会崩溃.事出必有因,后来分析找到原因是使用greendao自动生成的java-gen下package中的内容没有屏蔽代码混淆,导致存储数据库时,报*a(SourceFile:) NullPointerException * 混淆打包apk,运行崩溃 总结如下: 我们在打包时,debug版本没问题,但混淆后release版本有时会出现异常崩溃, 比如:a(SourceFil

ollydbg快速定位方便调试

在ollydbg调试的时候,会看到大量的汇编代码(远多于源代码),代码中有大量的函数嵌套调用,调试起来周期很长,难度比较大. 所以我们希望能快速定位到代码,以下是快速定位的四种方法: 1.Goto命令 执行Goto命令(Ctrl+G),输入跟踪表达式确定后,执行Excute Still Cursor(F4)命令. 2.设置断点 快捷键F2设置断点. 3.注释 键盘按下";"键,输入注释,便于查找. 4.标签 键盘按下":"键,输入标签,便于查找.

Linux 使用core file文件快速定位程序崩溃代码行

问题描述 如果在 Linux下编写程序,有时运行程序的时候程序崩溃,比如说只有"Segmentation fault (core dumped) ",程序比较小的话,还可以一行一行查看,但是如果程序很庞大,一行行查询,效率非常低下.Linux下可以程序可以生成core file文件,借助gdb很快能定位到崩溃的代码行. 解决方案 测试程序,除零操作,程序会崩溃 /* test.c */ #include <stdio.h> #include <stdlib.h>

快速定位iOS线上BUG在哪个控制器崩溃

快速定位iOS线上BUG在哪个控制器崩溃 快速定位iOS线上App崩溃在哪个控制器里面,需要和后台配合使用 下载本项目并添加手动添加到项目里 新建所有的页面都继承于YZViewController 在AppDelegate的didFinishLaunchingWithOptions方法里面写下如下代码: if ([[[NSUserDefaults standardUserDefaults] valueForKey:@"BUG"] isKindOfClass:[NSDictionary

使用grep快速定位代码位置

有时候临时修改代码时,我们不需要或者没有条件使用复杂的代码编辑器. 此时使用普通的文本编辑器如nano或vim,加上grep命令即可快速定位并修改代码. 例如,在kernel目录下搜索 CONFIG_BOARD_S3C4410_XXX 内容: grep -nrE 'CONFIG_BOARD_S3C4410_XXX' kernel 参数说明: n - 输出行号 r - 遍历 E - 使用正则表达式 如此就会将你要找的内容遍历出来,并列出文件名和行号. 配合vim命令: vim xxx +n 其中:

linux下编译make文件报错“/bin/bash^M: 坏的解释器,使用grep快速定位代码位置

一.linux下编译make文件报错"/bin/bash^M: 坏的解释器 参考文章:http://blog.csdn.net/liuqiyao_01/article/details/41542101#comments 自己测试的结果: [1]使用windows 下的编辑工具 新建文件doc2unix.sh #!/usr/bin/env bash # test PID=$(ps -aef | grep nginx | grep -v grep | grep master |awk '{print

使用grep命令快速定位代码位置

有时候临时修改代码时,我们不需要或者没有条件使用复杂的代码编辑器.此时使用普通的文本编辑器如nano或vim,加上grep命令即可快速定位并修改代码. 例如,在kernel目录下搜索 CONFIG_BOARD_S3C4410_XXX 内容: grep -nrE 'CONFIG_BOARD_S3C4410_XXX' kernel 参数说明: n - 输出行号 r - 遍历 E - 使用正则表达式 如此就会将你要找的内容遍历出来,并列出文件名和行号. 配合vim命令: vim xxx +n 其中: