Xcode7中你一定要知道的炸裂调试神技

转载 2015年11月17日 18:07:41
Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大家。

1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS?

EXC_BAD_ACCESS一直是很多开发者的噩梦,因为这个错误很不直观,出现后往往要花很长时间才能定位到错误。苹果这次带来了革命性的提升。

在项目的Scheme中Diagnostics下,选中enable address sanitizer(注意选中后Xcode会重新编译整个项目)。

001.png

这样设置后,如果再出现类似的错误会有更详细的错误信息提示,甚至会有内存使用情况的展示。

002.png

2.发布后的crash跟踪,轻松定位崩溃代码

在升级iOS9后,苹果会询问用户是否同意收集应用崩溃报告。这样在itunes connect的后台统计中就可以看到一些收集到的数据(通常会有相当一部分用户不同意,所以只是部分数据)。

2.1查看崩溃统计信息

在connect后台中选择app分析

225849-ddf9b0c1f838191f.png

进入分析页面后,tab中选择“指标”

225849-22cfb8baf457e02d.png

然后在左侧的菜单中选择“崩溃”

225849-62be4fc80d93df08.png

这样就可以看到苹果收集到的崩溃统计,一定要注意这里只是一部分的数据,举例来说如果你看到的崩溃是10次,但是可能苹果只收集了20%的用户信息。所以你可以大概估计应该是10*5=50次崩溃。

2.2在Xcode中查看具体崩溃信息

在xcode中菜单的window下选择organizer,在打开的窗口中选择Crashes,这样Xcode会开始下载相关的崩溃信息到本地中(网络环境不好时可能要等待一些时间)。

225849-86a09a7ec5a3b34d.png

organizer窗口

可以在左侧选择你要查看崩溃信息的发布版本

003.png

004.png

在崩溃信息这一栏苹果会按照崩溃数量排序,将崩溃数量最多的排在最前。右侧的详细信息会显示是崩溃时的调用堆栈,可以看到是哪行代码导致的崩溃。

225849-42fd0216cff5889e.png

选中要解决的崩溃后,可以在窗口右侧选择open in project。

005.png

神奇的事情发生了!!!在打开的项目中,会直接定位到崩溃的那行代码。这大大提高了调试的效率!我已经的迫不及待要和开发安卓的同事分享这份喜悦了。

注意!注意!

因为之前的项目发布时没有用xcode7打包,所以猜测符号表可能没有上传到苹果服务器,所以以前的项目可能不能直接显示是哪行代码,而是显示调用时出错的内存地址。不过下个版本你用xcode发布后就可以正常看到啦。

在解决完这个crash后可以标记为已经解决。有两个地方可以标记。

007.png

008.png

Xcode7中你一定要知道的炸裂调试神技

http://www.cocoachina.com/ios/20151020/13794.html Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大...
  • xyxjn
  • xyxjn
  • 2015年10月21日 09:58
  • 4243

Xcode7中你一定要知道的调试神技 & EXC_BAD_ACCESS

Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大家。 1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS?...
  • itianyi
  • itianyi
  • 2016年01月25日 12:09
  • 7682

深度神经网络训练的必知技巧

本文主要介绍8种实现细节的技巧或tricks:数据增广、图像预处理、网络初始化、训练过程中的技巧、激活函数的选择、不同正则化方法、来自于数据的洞察、集成多个深度网络的方法。1. 数据增广在不改变图像类...
  • u013709270
  • u013709270
  • 2017年04月29日 15:06
  • 7694

Xcode7中你一定要知道的炸裂调试神技

出自:http://www.cocoachina.com/ios/20151020/13794.html Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给...
  • lc316546079
  • lc316546079
  • 2016年10月26日 09:46
  • 117

iOS开发之调试技巧Xcode7中你一定要知道的炸裂调试神技、Address Sanitizer EXC_BAD_ACCESS

Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大家。 1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS  EXC_...
  • zhonggaorong
  • zhonggaorong
  • 2016年07月25日 11:56
  • 778

Xcode7中你一定要知道的炸裂调试神技

转发自:简书,没故事的卓同学 Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大家。 1.Address Sanitizer: 妈妈再也...
  • qq_20176153
  • qq_20176153
  • 2017年06月28日 09:56
  • 130

Xcode7中你一定要知道的炸裂调试神技

Xcode7中你一定要知道的炸裂调试神技 字数776 阅读8839 评论27 喜欢181 Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大家。 1.A...
  • u012460084
  • u012460084
  • 2015年10月29日 17:11
  • 374

Xcode7中你一定要知道的炸裂调试神技

Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大家。 1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS?...
  • HX_lei
  • HX_lei
  • 2016年11月23日 09:41
  • 153

Xcode7中你一定要知道的炸裂调试神技

http://www.cocoachina.com/ios/20151020/13794.html Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大...
  • xyxjn
  • xyxjn
  • 2015年10月21日 09:58
  • 4243

Xcode7中你一定要知道的炸裂调试神技

Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大家。 1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS  EXC_...
  • bluefish2016
  • bluefish2016
  • 2016年03月14日 23:26
  • 190
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Xcode7中你一定要知道的炸裂调试神技
举报原因:
原因补充:

(最多只允许输入30个字)