您的位置:首页 > 移动开发 > IOS开发

iOS 调试

2016-01-18 15:56 1166 查看

LLDB调试器

基本的LLDB命令:

p:打印非对象的值,如果是对象,则打印对象的地址

po: 打印对象的描述

断点

Xcode 根据是否有断点,自动切换run模式和debug模式

(普通断点略)

全局断点

有时程序出错不能定位到某一行,而是直接跑到main循环或AppDelegate里面,提示EXEC_BAD_ACCESS:等,可在左边debug导航面板中点➕,选择全局断点 Add Exception Breakpoint,这样只要遇到错误,debug程序就会自动定位到栈底信息,也就是最先出错的代码那一行。

条件断点

基础:右击断点,选择编辑断点,即可在条件一览输入程序暂停的条件。比如:for循环(i=0; i<3; i++)中在断点条件一栏输入i ==2;这样只有遍历到i==2时断点才会被触发。

action一栏中可选择输入条件,功能太强大

升级:在添加全局断点处,选择添加Symbolic断点,在 Symbol 一栏输入 [ClassName viewDidLoad] (Objective-C) 或 ClassName.viewDidLoad (Swift) 即可(unrecognised selector sent to instance 0xaxxxx 这种错误,这个instance可以这样快速定位)

打印

NSLog打印其实比print效率低很多。

常不清楚NSLog(@“%?”,xxx) xxx这种类型该是什么什么类型输出时,可用 NSLog(@”%s”,NSStringFromCGPoint(<#CGPoint point#>))等

可用宏丰富打印内容

开启僵尸对象(Enable NSZombie Objects)

视图有关

编译并运行应用程序,选中模拟器,从 Debug菜单中选择Color Blended Layers选项
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios xcode 调试