-
在运行过程中,如果出现EXC_BAD_ACCESS 异常,往往提示的信息很少或者没有提示,启用NSZombieEnabled后在控制台能打印出更多的提示信息,便于debug,请注意,僵尸模式下的调试工作只能在模拟器中实现,我们无法在物理设备上完成这一诊断流程。
-
异常断点,一般程序crash时Xcode一般会定位到main函数中,得不到详细的crash信息,打上异常断点后就极大可能定位到程序的crash处,利于debug。
-
一般来说,在创建工程的时候,应该在Build Settings启用Analyze During 'Build',这样每次编译时都会自动静态分析。这样的话,写完一小段代码之后,就马上知道是否存在内存泄露或其他bug问题,并且可以修bugs。当然你也可以直接长安运行程序按钮,在弹出框中选择analyze,也可以进行静态分析。
-
如果你想在运行的时候查看APP是否存在内存泄露,你可以使用Xcode上instruments工具上的Leaks模块进行内存分析。但是有些内存泄露是很难检查出来,有时只有通过手动覆盖dealloc方法,看它最终有没有调用。
长按运行按钮,在弹出框中选择profile会自动弹出Instruments程序,选择leaks模块进入leaks图所示界面,此时左上角第二个红框的内容会自动填充,其他的按框操作,然后点击左上角第一个框的红色圆点按钮开始检测APP内存,这时会在模拟器(或真机上,如果你的target是真机的话)上启动程序,然后操作你的程序,观察leaks一行有没有出现红色的类似于田字的叉,如果有说明内存泄露了,点击红叉,在下面callTree中查看具体内存泄露的地方,双击便可定位到泄露内存的代码的地方,如果你觉得在控制台不好改程序,可以点击右上角的xcode标识,就会在xcode中定位到对应的代码。
iOS 调试及内存分析基本技巧
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 上一篇博客iOS/OS X内存管理(一):基本概念与原理主要讲了iOS/OSX 内存管理中引用计数和内存管理规则,...