iOS 调试

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选项
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值