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

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

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

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

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

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

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

2.1查看崩溃统计信息

在connect后台中选择app分析

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

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

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

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

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

organizer窗口

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

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

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

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

注意!注意!

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

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

参考链接:http://www.cocoachina.com/ios/20151020/13794.html

时间: 2024-10-27 02:54:41

Xcode7中你一定要知道的炸裂调试神技(转)的相关文章

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

原文:http://www.jianshu.com/p/70ed36cf8a98 Xcode7中苹果为我们增加了两个重要的debug相关功能.了解之后觉得非常实用,介绍给大家. 1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS EXC_BAD_ACCESS一直是很多开发者的噩梦,因为这个错误很不直观,出现后往往要花很长时间才能定位到错误.苹果这次带来了革命性的提升. 在项目的Scheme中Diagnostics下,选中enable address sani

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

转自:http://www.cocoachina.com/ios/20151020/13794.html Xcode7中苹果为我们增加了两个重要的debug相关功能.了解之后觉得非常实用,介绍给大家. 1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS? EXC_BAD_ACCESS一直是很多开发者的噩梦,因为这个错误很不直观,出现后往往要花很长时间才能定位到错误.苹果这次带来了革命性的提升. 在项目的Scheme中Diagnostics下,选中enable

消除 Xcode7 中 directory not found for option 'xxxx' 警告

消除 Xcode7 中 directory not found for option 'xxxx' 警告 升级Xcode7之后,你会遇到一些警告信息,诸如以下一条: ld: warning: directory not found for option '-F/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/Developer/Lib

iOS学习之关于Xcode7中 Link Binary With Libraries 没有 .dylib库的问题

Xcode7中 Link Binary With Libraries 没有 .dylib库,只能找到对应的 .tbd,但不能代替使用,通过查找资料,尝试后得到以下两种解决方法. 方法1. (heqin测试可行)在项目Target中的Link Binary With Libraries 手动添加 首先点击 “+” 显示搜索添加页面,在这里如果搜索之前的libsqlite3.dylib是搜不出来ios9之前的.所以需要点击 Add Other,出现文件目录页面,正常情况这里去通过Finder也是找不

关于Xcode7中添加不了libresolv.dylib等类似库的问题

Xcode7中,由于某些机制,使得我们在添加类似于 libresolv.dylib.libz.dylib等库的时候,直接在Build Phases中点击加号添加,似乎已经无法找到相应的库.此时,我们可以直接在Build Settings中,手动添加.添加方法:找到Lingking,在Other Lingker Flags中添加.依据其命名规则,去掉前缀lib,和后缀.dylib,添加前缀-l,即-lresolv,即可解决.

在Xcode7中搭建Python开发环境

如果你是从IOS开发转PYTHON,钟情于Xcode :)说实话,不好用,也许我用的少?======================================在Xcode7中搭建Python开发环境 一.开发环境准备 1.安装Xcode 2.找到Mac OS X上安装Python的路径.OSX系统默认安装了python,默认的路径为/usr/bin/python 二.创建项目 1.在项目菜单中,选择Other选项卡下的"Build External System",然后点击&qu

Vs2012在Linux开发中的应用(15): 添加可用的调试器

快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在VS的调试属性页中列出了此项目可用的调试器: 首先到MSBUILD目录下找这个页面的参数,很容易有收获: C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V110\2052\debugger_remote_windows.xml(3):<RuleName="WindowsRemoteDebugger" DisplayName=&

设计模式中的撩妹神技--上篇

开篇前言 遇一人白首,择一城终老,是多么美好的人生境界,她和他历经风雨慢慢变老,回首走过的点点滴滴,依然清楚的记得当初爱情萌芽的模样,时维十一月,眼看着光棍节就那么轻轻的来了,没有预告,没有准备`(*∩_∩*)′,是否想在双十一摆脱单身,和亲爱的ta牵手漫步,在寒风中紧紧相拥,都说艺术来源于生活,却高于生活,作为人类智慧的结晶设计模式,她蕴藏着丰富的撩妹技术,今天这篇博文,小编主要介绍桥接模式中的撩妹神技. 什么是桥接模式 在软件系统中,某些类型由于自身的逻辑,她具有两个或者多个维度的变化,那么

详解Xcode7中创建静态库

今天和大家一起来谈谈Xcode中的静态库,包括什么是静态库,如何在Xcode中创建静态库等内容,希望这篇Xcode教程 http://www.maiziedu.com/course/234/对打击有帮助. 一.静态库和动态库的区别: 静态库和动态库是相对编译期和运行期的,静态库以 .a 和 .framework 形式存在,链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝:动态库以 .dylib 和 .framework 形式存在,链接时不复制,程序运行时由系统动态加载到内存