ios开发答疑录系列---xcode release 和 debug 模式造成的不同
来源:互联网 发布:淘宝好看的高跟鞋店铺 编辑:程序博客网 时间:2024/06/12 00:44
公司的应用在本地测试没有问题,于是提交到app store,审核通过后,自己下下来看看,去发现了一个crash。回到自己的mac上断点调试,正常。思考片刻,想起自己在本地开发是debug模式,而app store发布的是release模式,难道是两者的不同?于是我切换到release模式重新运行(切换方式如下图),报错。好吧,打断点找原因。却发现断电的log不打印,而且查看内存也是乱起八糟,疯掉。于是开始思考ios的debug和release有什么不同。
Release是发行版本,比Debug版本有一些优化,文件比Debug文件小 Debug是调试版本,Debug和Release调用两个不同的底层库。
一、"Debug是调试版本,包括的程序信息更多"
二、只有DEBUG版的程序才能设置断点、单步执行、使用TRACE/ASSERT等调试输出语句。
三、REALEASE不包含任何调试信息,所以体积小、运行速度快。
说一下我这次遇到的错误:
代码是一段循环,错误原因是我数组越界了
- int emojiRangeArray[12] = {0,10,20,30,40,50,60,70,80,90,100,104};
- for (int j = 0 ; j<12 ; j++ ) {
- int startIndex = emojiRangeArray[j];
- int endIndex = emojiRangeArray[j+1]; //【1】、这里j最大是11,所以j+1是12,越界了
- printf("showEmojiView---startIndex: %d, endIndex: %d\n",startIndex,endIndex);
- for (int i = startIndex ; i<= endIndex ; i++ ) { //【2】、这里由于上面越界,这里提供的数值不对,所以内部NSArray objectAtIndex调用时候越界了
但是在release中,emojiRangeArray[12]=1094795585(应该是内存地址),大于于startIndex,【2】处条件符合,继续循环,触发了exception。
关于release和debug的不同,我还会继续记录,今天先写到这里吧,下班了,久违的双休啊原帖地址:http://blog.csdn.net/kafeidev/article/details/8364995
0 0
- ios开发答疑录系列---xcode release 和 debug 模式造成的不同
- ios开发答疑录系列---xcode release 和 debug 模式造成的不同
- ios开发答疑录系列---xcode release 和 debug 模式造成的不同
- xcode release 和 debug 模式造成的不同
- xcode release 和 debug 模式造成的不同
- ios开发答疑录系列--XCode重命名文件夹
- ios开发答疑录系列---iphone & ipad 图标大小和xcode配置
- iOS开发 使用Xcode DEBUG模式和RELEASE模式)
- iOS开发技巧:使用Xcode DEBUG模式和RELEASE模式
- ios开发答疑录系列---(六)NSString和NSData通过Base64编码的相互转换
- ios开发答疑录系列---(五)NSString 和NSCharacterset的不同之处
- ios开发答疑录系列--xcode 的target总是“My Mac 64-bit” 而不是 simulator or device
- ios开发答疑录系列---xcode 经常crash 当使用svn时候
- ios开发答疑录系列---Xcode 4 设置App版本号
- ios开发答疑录系列---(二)Xcode 提交过程 遇到 no identities were available
- ios开发答疑录系列---Xcode 4 设置App版本号
- ios开发答疑录系列---(二)Xcode 提交过程 遇到 no identities were available
- ios开发答疑录系列---(七)IOS 线程处理
- linux快速搭建svn
- 【mysql】SQL嵌套子查询和相关子查询的执行过程有什么区别(推荐)
- 一个linux控制台程序demo
- UINavigationController 设置左右按钮
- Linux设备驱动程序学习(3)-并发和竞态
- ios开发答疑录系列---xcode release 和 debug 模式造成的不同
- 解决boost::asio的WinSock.h has already been included
- 蘑菇街三人斗地主随机发牌的笔试题
- Linux常用命令征集
- 常见端口列表
- VS2013 Website publish
- 引用Log4net.dll的模块,无法打开
- MFC三种消息映射的区别与联系
- Java注释@interface的用法