iOS调试奇巧淫技(二)之LLDB

一篇我们介绍了iOS调试奇巧淫技(一),主要是几种断点的功能和运行时间测试,这次我们进一步学习一个让你用了之后爱不释手的测试工具—-LLDB

简单介绍

LLDB是一个开源的内置于XCode的调试工具,可以安装C++或者Python插件。与LLDB相对应的是gdb,主要存在于基于UNIX平台的程序调试工具。

使用作用

在开发中我们经常要调试代码,用到最多的就是print和NSLog输出,这样的做法在某些程度下并不太高效,LLDB的引进在某些时候替代打印函数,提高测试效率。

用法

1.help

help命令的作用不言而喻,当我们遇到某个命令不知道怎么用的时候可以通过help命令调用系统命令介绍文档,来了解更多细节

比如:

                    help print

非常详细的打印出help的具体参数用法

2.print

打印命令的用法也是不言而喻的,可以用来打印某个值

iOS调试奇巧淫技(二)之LLDB_第1张图片

或者可以简写为 p (变量名称)

3.expression

当我们想改变一个变量的值的时候用到了expression命令 简化为 expr 、e

当然其实你也可以用print命令进行打印

iOS调试奇巧淫技(二)之LLDB_第2张图片

通过上图我们可以清晰的比较到 print和expression的区别是:print并没有改变实际参数的值,模拟性的使变量称为你所意愿的值,而expression不同,是实实在在的改变了变量的值。

这里写图片描述

4.process continue 命令

简称 continue 或者 c。
作用于上面第一个按钮一样,取消程序的暂停,允许程序继续执行下去

5.thread step-over 命令

简称 next,或者n

作用以黑盒的方式执行一行代码,如果遇到的是一个函数,那么会执行这个函数,而不是只跳进函数里面的一行代码

6.thread step in命令

简称 step 或者s

当我们想跳进一个函数里面逐步调试程序的时候可以用这个命令。如果当前行不是函数则,这个命令和5.thread step-over 命令作用一致。

7.step out命令

当我们在一个函数中,想跳出这个函数,则可以运用这个命令

8.frame info命令

运行这个命令将会告诉你当前行数和源码文件,以及其他一些信息

9. Thread Return命令

我们有时候调试不想执行某个函数的代码,可以借助这个命令在函数的开头直接给这个函数的返回值,这样函数以后的代码就没有机会,执行直接给了个人为的返回值 。这个命令太强大了,用时要慎重细心,伪装者,绝对的伪装者。

10.breakpoint list

简称 br li

获取项目中断点的具体位置和信息并打印

iOS调试奇巧淫技(二)之LLDB_第3张图片

11.breakpoint enable、 breakpoint disable

对某个具体断点开启或关闭

12 breakpoint set

手动创建断点

iOS调试奇巧淫技(二)之LLDB_第4张图片

总结

以上就是LLDB命令最常用的命令了,是不是欢呼LLDB如此的强大,完全在很多时候可以替代低效率的NSLog函数方法,当然LLDB还有很多命令,最后附上LLDB命令表查询手册,让我们为这么便捷的开发,为iOS、为苹果欢呼吧!

你可能感兴趣的:(xcode,lldb,iOS调试技巧)