iOS开发实战tips--断点可以这样玩(debug)


前言

正所谓工欲善其事必先利器.特此在这里把我个人觉得在Xcode里比较实用的调试方法给总结出来和分享给大家.当然大家有什么更好的调试技巧或者我哪里需要改善,还望多多和我交流交流~!!
以下几点是我个人在IOS开发中用的比较多的调试技巧,本篇将会介绍三种方法来玩断点.

以下是目录:


1. 给断点加判断条件和LLDB命令
1) 给断点加一个判断条件,例如在一个for循环中,当i==5的时候才让断点生效并且暂停app, (如下图)

 
2) 给断点添加LLDB命令, 例如使用 po self 命令(如下图) ps:不知道什么是LLDB或者对LLDB命令了解比较少的可以自行去Google或者百度一下即可点击这里可以调到苹果官网查看LLDB命令大全
 
2. 符号断点(Symbolic breakpoint)的简单介绍和使用
符号断点(Symbolic breakpoint) 可以中断某个函数的调用,比如你想看某一个方法何时被调用,就可以加符号断点, 但我个人感觉此断点的应用基本是用来找controller比较常用,而我也一般都是用此断点来进行controller的追踪.
举个列子:一个项目里都有很多页面(controller), 而要快速上手app找到每个页面对应的controller, 通常直接看代码或者打断点追踪都是比较痛苦的,比如现在有三个详情页,而我想修改其中一个controller的背景颜色,对于项目不熟悉或者新接手项目的,得要从切入口一个一个追踪才能追踪到我们想要修改的那个详情页.这样效率极低.然而现在, 我们可以通过符号断点来可视化找出我们需要的页面所对应的controller!
leader再也不用担心我找不到controller啦(如下gif图)

 
 
3. 运行时设置响应事件的断点--快速定位到view所点击的方法
在维护项目和进行二次开发时,经常debug要找出这个view或者button响应的方法.虽然打断点追踪或者直接看源代码也能找出button的target,但是这样效率是很慢的. 现在有一个LLDB命令可以在运行时添加一个响应事件的断点,步骤如下:
1) 在app运行时点击pause program execution 便会暂停app,在此就可以输入LLDB命令啦(如下图)


2在LLDB控制台中输入命令 : br s -r . -s Demo1 并且响应Breakpoint XXX locations 就代表成功了. (如下图)

 
注意: 其中红色字体(br s -r . -s Demo1 命令中的Demo1) 指的是你当前项目的项目名Breakpoint XXX locations 中的XXX 显示的是一数字,每个项目显示的数字是不一样的!!!

3) 回到app中, 点击你要查看某一个view or button的响应

4) 然后在回到Xcode的控制台中点击continue 按钮就能跳转到你所点击view的响应方法,如下图
完整的操作流程请参考如下gif图
(注:此图地址来自网易,如未正常显示,请刷新一下当前页面即可.)  IOS开发中的调试(debug)技巧总结(1) -- 断点可以这样玩 - z_xiaoping - 张孝平的博客
 
     
总结: 这里主要讲解了我个人在开发过程用的比较多一些断点调试技巧,当然还有其他调试技巧用的不是那么多, 所以在这里就不在赘述了.如果我有哪里写的不足还望多多指点.当然您有其他的调试技巧也可以分享给我噢!

posted @ 2015-11-21 22:16  张孝平  阅读(2027)  评论(0编辑  收藏  举报