iOS开发-Xcode 调试技巧(很常用)
来源:互联网 发布:plc模拟量编程实例 编辑:程序博客网 时间:2024/06/08 12:34
1.Enable NSZombie Objects(开启僵尸对象)
僵尸模式是整个Xcode开发环境中最有用的调试技巧。这个技巧非常非常容易追踪到重复释放的问题。该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址。
那么怎么开启僵尸对象呢?首先打开“Edit Scheme”(或者通过热键⌘<),然后选择Diagnostics选项卡,勾选Enable NSZombie Objects选项。
ARC重复释放的问题、异常和更容易产生的Crashs,但是即使开启ARC,重复释放和与内存相关的Crashs也经常发生。对于这些问题,通过Enable NSZombie Objects打印的信息是非常有用的。
2.对于所有异常添加Global BreakPoint(全局断点)
当你的应用异常或者崩溃的时候Xcode喜欢做的一件事情是直接跳到主函数,就像第一个调试技巧中用到的那个例子一样。如果异常或者崩溃能够停留在异常或者崩溃发生的地方那该是多好呀。幸运的是有一个方法可以做到。Xcode有一个漂亮的功能叫做异常断点,允许我们在异常发生的时候在异常发生的地方放一个断点。你可以指定具体的异常也可以指定所有的异常。
怎样开启异常断点呢?工程切换到异常浏览窗口,点击下方左侧的“Add Breakpoint”按钮,然后选择“Add Exception Breakpoint”确保可以捕获所有异常。
现在异常发生时调试器不会直接跳转到主函数了,而是停留在了异常发生的地方。
3.Static Analyzer(静态分析)
Static Analyzer是一个非常好的工具去发现编译器警告不会提示的问题和一些个人的内错泄露和死存储(不会用到的赋了值的变量)错误。这个方法可能大大的提高内存使用和性能,以及提升应用的整体稳定性和代码质量。
怎么打开Static Analyzer?打开Xcide的“Product”菜单,选择Analyzer选项(或者使用热键⌘ shift B)。
正像你看到的下面的截图,Static Analyzer会捕获任何应用内的可能的问题然后以蓝色的警告展示出来。
4.Condational Breakpoints(条件断点)
最后一个调试技巧条件断点,这只是普通的断点,当变量满足一定条件时程序停止。这个调试技巧在当你想要捕获一个循环中的变量的特定值或者一些不常发生的情况时是非常有用的,而不用你每次迭代都停止来查看。
怎样开启条件变量?只不过是添加一个普通断点,然后右键点击断点选择“Edit Breakpoint”,这时就打开了一个断点编辑器,你可以在这里设置断点条件(以及一些其他的断点设置),然后选择“Done”,这个调试技巧非常简单吧。
1 0
- iOS开发-Xcode 调试技巧(很常用)
- iOS开发之Xcode常用调试(Debug)技巧总结
- iOS开发之Xcode常用调试(Debug)技巧总结
- iOS开发之Xcode常用调试技巧总结 断点高级
- iOS开发之Xcode常用调试技巧总结
- iOS开发之Xcode常用调试技巧总结
- ioS开发--Xcode常用调试技巧总结
- iOS开发之Xcode常用调试技巧总结
- ios xcode常用调试技巧总结
- iOS开发Xcode断点调试技巧
- iOS开发Xcode断点调试技巧
- Xcode 调试常用技巧
- IOS:xcode调试技巧
- iOS开发之Xcode常用调试技巧总结,NSLog,LLDB, Breakpoint,EXC_BAD_ACCESS,Address Sanitizer
- NSLog,LLDB, Breakpoint,EXC_BAD_ACCESS,Address Sanitizer ,iOS开发之Xcode常用调试技巧总结
- Xcode开发调试技巧
- Xcode开发调试技巧
- Xcode开发调试技巧
- 使用spring web.xml里的配置 - 请求处理器DispatcherServlet
- HDU 2668 Daydream(最长不重复子序列)
- 链表的操作(纯C语言版)
- 《Motion Design for iOS》(十二)
- 微信开发,access_token,时间上没有过期,但已失效的问题
- iOS开发-Xcode 调试技巧(很常用)
- 第九周-实践项目
- GlobalSign 多域型(SNAs) SSL 证书
- xcode7关于view的高度
- 进制转换心得
- Unable to add App ID because the ’10’ app ID limit in ‘7’ days has been exceeded
- 查看Linux系统信息命令
- 进程控制exec函数族
- navicat连接mysql