关闭

XZ_iOS之控制台使用LLDB去po打印相关信息

标签: 控制台poLLDB断点调试
346人阅读 评论(0) 收藏 举报
分类:
使用更强大的断点功能
我们经常使用断点功能,但是我看大多数朋友仅仅使用常规的断点调试功能。
其实还有很多你能做的,例如,你可以自定义您的断点,让他们在全局的工程中发挥作用,你为什么要这样做呢?

因为你可以创建符号断点(标志性的断点),在代码执行执行到这一句的时候,例如UIApplicationMain:


你看懂我在这里做了什么了嘛?

现在每当我做任何项目的调试工作时,我得到的不是

我可以直接得到这些信息,不需要额外的步骤。



在查找BUG或者获取某个变量的值的时候,有些朋友喜欢用NSlog,但是我个人认为还是LLDB更好用一些,在控制台使用po语句输出,不需要再重新运行程序,可以运行一次多次获取变量的值,NSLog需要再次执行才可以得到变量的值,而自定义断点,可以在程序不被打断的情况下直接得到需要的值

一、1>使用expression语句执行表达式
可以在执行代码的过程中通过执行表达式来修改程序的值
例,运行过程中修改视图的颜色,在初始化view的下一句代码处打断点,


在控制台使用下面语句进行修改,我先使用了自定了一个RGB颜色不可以,换成系统的就可以了
expression -- self.view.backgroundColor = [UIColor purpleColor];
将命令写到控制台中点击Enter键,看到程序输出“(UICachedDeviceRGBColor *) $10 = 0x7b0bb1a0”就说明修改成功了,然后点击跳过当前断点,就可以看到效果了


点击跳过断点之后的效果


视图原来的背景色

修改中之后的背景色

2>打印值
(注意:①因为这个命令使用原始输入,如果你使用操作命令,你必须在操作命令之后和原始命令之间加--,官方文档是这么说的,但是我没加也可以打印出来,加一个-的时候打印不出来;②变量也是表达式)


注意:LLDB遵循“唯一匹配原则”:如果一个单词的前几个字母足以表示这个变量名,且没有重复的变量名跟这个单词的前几个字母相同,那么输入前几个字母就等于输入了这个变量。

二、po即expression -O的缩写

LLDB使用 “expression -O 对象名”来打印对象。


输入help expression可以查看所有的expression信息。


1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

LLDB之基本命令使用(Swift)

随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器。它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。LLDB为Xcode提供了底层调试环...
  • longshihua
  • longshihua
  • 2016-07-25 14:16
  • 1724

iOS中教你快速掌握LLDB调试技巧

转自:http://blog.csdn.net/baihuaxiu123/article/details/51316510 目录(?)[+] 摘要 LLDB...
  • quanqinayng
  • quanqinayng
  • 2016-05-05 11:22
  • 8169

高效开发iOS系列(runtime篇) -- debug模式下使用po命令打印model的属性和值(runtime + debugDescription)

在开发过程中, 往往会有很多的model来装载属性. 而在开发期间经常会进行调试查看model里的属性值是否正确. 那么问题来了, 在`objective-c`里使用`NSLog("%@",model...
  • biggercoffee
  • biggercoffee
  • 2016-01-04 00:01
  • 3794

IOS调试lldb命令常用,po, Xcode控制台调试

lldb命令常用(备忘) 假如你准备在模拟器里面运行这个,你可以在“(lldb)”提示的后面输入下面的: (lldb) po $eax LLDB在xcode4.3或者之后的版本里面是默 ...
  • hghjgbjhgadja
  • hghjgbjhgadja
  • 2016-01-08 14:34
  • 495

iOS开发让Xcode的控制台支持LLDB类型的打印

1.让Xcode的控制台支持LLDB类型的打印 这有什么用? 怎么说呢,笔者认为这个还是比较有用滴,为什么有用呢? 因为在Xcode断点调试的时候, 在控制台输入 po self.v...
  • wgl_happy
  • wgl_happy
  • 2016-06-15 13:26
  • 475

高效开发iOS系列 -- 让Xcode的控制台支持LLDB类型的打印

这有什么用?怎么说尼, 笔者认为这个还是比较有用滴, 为什么有用尼? 因为在Xcode断点调试的时候, 在控制台输入 ` po self.view.frame ` 或者 ` po ` id 类型的时候...
  • biggercoffee
  • biggercoffee
  • 2015-12-16 22:21
  • 1850

IOS调试lldb命令常用,po,

实用LLDB命令 命令名 用法 说明 expr expr 表达式 可以在调试时动态执行指定表达式,并将结果打印出来,很有用的命令。 ...
  • ios_xumin
  • ios_xumin
  • 2015-01-14 16:38
  • 773

IOS 调试lldb命令常用----po

lldb命令常用(备忘) 假如你准备在模拟器里面运行这个,你可以在“(lldb)”提示的后面输入下面的: (lldb) po $eax LLDB在xcode4.3或者之后的版本里面是默认的调试器。...
  • u010856537
  • u010856537
  • 2015-06-12 18:11
  • 292

Xcode 用lldb命令po(print-object)打印UIView的视图层级

UIView有一个私有方法: recursiveDescription 这个方法可以显示出当前视图的详细层级,可以在代码中直接调用,也可以在GDB中调用,在GDB中调用时需要借助另一个GD...
  • objectively
  • objectively
  • 2014-06-08 11:47
  • 1971

让Xcode的控制台支持LLDB类型的打印

这有什么用? 怎么说尼,笔者认为这个还是比较有用滴,为什么有用尼? 因为在Xcode断点调试的时候, 在控制台输入 po self.view.frame 或者 po id 类型的时候就死翘翘了。 ...
  • wmqi10
  • wmqi10
  • 2016-01-04 11:44
  • 1124
    个人资料
    • 访问:56182次
    • 积分:1775
    • 等级:
    • 排名:千里之外
    • 原创:119篇
    • 转载:0篇
    • 译文:2篇
    • 评论:18条
    文章分类
    最新评论