LLDB主要命令

1.打印相关的命令有:p、po。

p 和 po 的区别在于使用 po 只会输出对应的值,而 p 则会返回值的类型以及命令结果的引用名。  

IOS BLE编码格式 苹果手机lb格式_objective-c

对比结果:po:输出值 p:值类型+引用名+内存地址+输出值 p还有其他功能

IOS BLE编码格式 苹果手机lb格式_macos_02

  • 1.p:默认打印十进制
  • 2.p/x:转16进制
  • 3.p/o:转8进制
  • 4.p/t:转二进制
  • 5.p/d:字符转十进制数字
  • 6.p/c:十进制数字转字符

2.expression 修改参数值

3.call方法调用

断点调试某个方法,输出此方法的返回值 

IOS BLE编码格式 苹果手机lb格式_16进制_03

 

4.x打印

x 对象表示以16进制打印对象内存地址(x表示16进制) 因为iOS是小端模式(数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中——反过来存放数据)所以要倒着读数据

x/4gx 对象表示输出4个16进制的8字节地址空间(x表示16进制,4表示4个,g表示8字节为单位,等同于x/4xg 对象)

IOS BLE编码格式 苹果手机lb格式_IOS BLE编码格式_04

 

消 通过x/4xg或x/4gx打印内存地址,地址信息包含存储的属性 

IOS BLE编码格式 苹果手机lb格式_macos_05

5.image指令

image命令主要用于寻址

  • image list:命令可以查看项目中使用了哪些库 
  • image lookup --address+地址:该命令用来查找可执行文件或共享库的原始地址当程序崩溃时,可以用这条命令来查看崩溃的具体位置

IOS BLE编码格式 苹果手机lb格式_16进制_06

 

6.查看线程和帧状态

  • thread list:列出当前所有线程 

上图的*表示当前线程,也就是说thread #1是当前线程

  • thread backtrace:打印堆栈信息,简写bt 

打印的信息要比左边红框的Debug Navigator更为详细,如果打印的堆栈过多,可以加一个值限制。例如:bt 5。

  • bt all:打印所有线程的堆栈信息 

bt跟bt all打印的结果一样的原因是例子的项目很简单导致的

  • thread return:跳出当前方法的执行,主要用于控制程序流程。thread return后有一个可选参数,在执行过程中会把该参数加载到寄存器,然后立即执行返回命令,跳出当前栈帧。
  • frame variable:查看当前帧的变量,默认输出当前帧所有参数和所有局部变量 

7.查看寄存器地址

register read:查看寄存器地址信息 

IOS BLE编码格式 苹果手机lb格式_IOS BLE编码格式_07

 register read/x:查看具体寄存器地址 

IOS BLE编码格式 苹果手机lb格式_IOS BLE编码格式_08

8.methods命令可以打印当前对象的属性和方法

IOS BLE编码格式 苹果手机lb格式_IOS BLE编码格式_09


最后

最后附LLDB命令lldb命令