IOS上objective-c开发调试方法

标签: 移动 | 发表时间:2012-02-25 05:57 | 作者:icejmx
出处:http://hi.baidu.com/icej

常用总结,陆续补充,免得忘记。

1.如果问题是可以复现的,用Breakpoint可以跟踪出错位置在进行分析

2.如果使用Breakpoint无法查出crash问题,问题无法复现,可以用profile记录运行过程中的内存,cpu使用,看是否在某一功能突然升高,不稳定。

3.可以通过将所有的NSLOG控制台输出截获到文件输出,在真机上运行来排查在模拟器上无法复现的问题。

在AppDelegate.m下增加方法

- (void) redirectConsoleLogToDocumentFolder {

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"NSLog2file.txt"];

    freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);

}

在程序applicationDidFinishLaunching下增加[selfredirectConsoleLogToDocumentFolder];调用。

查看log方法是将手机插入MAC,在xcode的Organize的devices下选择手机的application,可以在目录下找到文件。

4.在手机连入MAC后还可以在devices下看到 Device Logs,里面有所有的crash log,是系统记录的用于排查问题。

5.如果在模拟器遇到crash,实在无法解决,可以使用NSZombie来排查,看堆栈信息。 设置方法是在Xcode的product下的edit scheme中环境变量增加NSZombieEnabled YES, MallocStackLogging YES, MallocStackLoggingNoCompact YES

这样出问题时,可以在gdb下对crash的程序输入 info malloc-history 错误地址(比如:0x836fff0)或者shell pid序号 malloc_history

第一项可监控deallocated的内存,给更多的错误讯息

第二项可开启MallocStack,就知道内存在程式运行中被配置的历史

第三项可以更清楚显示指定的MallocStack状况

阅读全文
类别: 移动  查看评论

相关 [ios objective 开发] 推荐:

IOS上objective-c开发调试方法

- - 瞄的技术
常用总结,陆续补充,免得忘记. 1.如果问题是可以复现的,用Breakpoint可以跟踪出错位置在进行分析. 2.如果使用Breakpoint无法查出crash问题,问题无法复现,可以用profile记录运行过程中的内存,cpu使用,看是否在某一功能突然升高,不稳定. 3.可以通过将所有的NSLOG控制台输出截获到文件输出,在真机上运行来排查在模拟器上无法复现的问题.

10个优秀的Objective-C和iOS开发在线视频教程

- - 移动开发 - ITeye博客
如果你自己开发iOS应用,你肯定会发现网上有很多资源. 学习编程的一个最好的方法就是自己写代码,而开始写代码的最快的方式就是看其他人怎么写. 我们从海量视频和学习网站中整理出了我. 如果你自己开发iOS应用,你肯定会发现网上有很多资源. 学习编程的一个最好的方法就是自己写代码,而开始写代码的最快的方式就是看其他人怎么写.

移动开发技术周报:用NetBeans开发HTML5应用,Objective-C和Cocoa最佳实践(2013.02.26)

- - InfoQ cn
总结性周报这个东西,是有时间阅读的人整理给没时间阅读又需要阅读的人看的. 有用的周报,相当于成功的用整理者的时间投入节约了阅读者的时间支出,皆大欢喜;否则,是浪费了双方的时间. 希望今天开始的这个周报会是个有用的周报. 有任何建议、反馈,欢迎写在评论里. 另,如果大家看到什么好东西(尤其是中文界的技术内容)想要分享,欢迎去Fenng的新店 Startup News踩踩.

Objective-C Json 使用

- - CSDN博客移动开发推荐文章
通过使用NSJSONSerialization 可以Json与Foundation的相互转换. 下面具体介绍 Objective-c json 的使用. 使用 JSONObjectWithData 可以将 Json 转化为 Foundation. Json的顶层可以是 {} 或  []因此可以有 NSDictionary 和 NSArray 两种格式.

iOS开发资源

- - Starming星光社最新更新
iOS App UI 欣赏、分享精美的App界面设计. iOS代码实例搜索、iOS特效示例、iOS代码例子下载. 以web的形式提供iOS UI设计的素材,你可以在web上拖动一些控件做出简单的ios 应用效果,并且生成一个URL,能分享给其他人. 一款 Photoshop 插件,由 UI Parade 推出的一款针对iOS UI 的设计工具,设计师动动鼠标即可制作精美的 iOS 应用原型.

[翻译]学习 Objective-C

- Season - Some reminiscences, some memories
接到 ceo 通知,招聘、培训都不用我再负责了,所有人从“闲人”要变成“战斗人员”. 于是撸撸袖子,潜心学习 cocoa 和 Object-c. 不经意看到这篇,好文,兴起,翻译之⋯⋯. 原文地址:http://cocoadevcentral.com/d/learn_objectivec/. Objective-C 是编写 Mac 软件的主要语言.

iOS MDM开发流程

- - CSDN博客移动开发推荐文章
一年前曾参与过中石油的一个移动平台项目,实现了通过MDM对iOS设备进行管理. 由于苹果对于mdm这块的接口及开发流程只向几个合作伙伴进行了分享,并没有对具体实现的文档进行公开,所以这方面的资料非常少. 现在把实现的过程分享给大家,希望能对大家有所帮助. MDM的全称是Mobile Device Management,是企业IT 向移动互联网过渡的平台技术,帮助企业将IT管理能力从传统的 PC 延伸到移动设备甚至 移动应用APP.

iOS App开发那些事

- - IT江湖
自从做Team Leader之后,身上权责发生了变化,于是让我烦恼的不再是具体某个功能,某个界面的实现,而是如何在现有代码的基础上做渐进式的改进,创造出比较合适规范和框架,使得组内成员更快更好地完成任务. 一年下来,颇有点想法,于是啰嗦几句关于iOS App开发的那些事. 首先明确一点,合适的人是指纯技术团队的建设.

一些Objective-C学习资源

- 刘潇 - 博客园-首页原创精华区
    想学习Objective-C的童鞋们注意咯,推荐一些学习资料给大家,希望对您有用.    Learn Objective-C   很基础很简洁.    Learn Objective-C(中文版)  E文不好的可以看看咯.    Objective-C 2.0特性与运行时编程 一网友的笔记熟悉语法特性.

年度编程语言锁定Objective-C

- ndv - 《程序员》杂志官网
虽然2011年才刚过半,但随着iPhone和iPad平台市场领导地位的确立和Apple各系统不断推陈出新,从市场占有的趋势来看,Objective-C成为年度编程语言无疑. TIOBE编程语言排行榜每年初都将统计评出上年度的最佳编程语言大奖,获奖的编程语言被认为在该年度市场份额增长及用户认可度方面获得了最为突出的成绩.