控制台命令lldb命令

417 阅读1分钟

在底层摸索过程,我们经常需要使用到一些打印命令,来输出我们对象的指针及内存情况,这时候就需要熟练使用lldb命令。

lldb命令如下:

bt:打印线程的堆栈信息

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

po:打印对象,与p类似。po只会输出对应的值,而p则会输出值的类型以及命令结果

expr:expression简写,调试时,动态执行赋值表达式,同时打印出结果。

call:动态调用函数

image:image list可以查看某一个地址对应的代码位置。除了 image list 还有 image addimage lookup等命令,当遇到crash 时,查看线程栈,只能看到栈帧的地址,使用 image lookup –address 地址 可以方便的定位到这个地址对应的代码行。

x:查看地址,例如:x objc

x/4gx:打印4个16进制地址。x/4gx objc

这个命令是组合命令,注解一下:

几组数据(4)

数字4代表输出4组数据

字节大小(g)

  • b :byte 代表1个字节
  • h :half word 代表2个字节
  • w :word 代表4个字节
  • g :giant word 代表8个字节

输出格式(x)

  • x :代表16进制
  • f :代表浮点数
  • d :代表10进制
  • u : 无符号十进制整型
  • o:八进制
  • t:二进制
  • a:16进制 与x的区别是,多打印了地址内容出来(自己测试的,如解释不对,请指正)
  • i:指令地址
  • c:字符格式

image.png

再补充一下:

  • p/t二进制打印
  • p/0八进制打印
  • p/x十六进制打印