iOS - Xcode调试- lldb

  • expr 指令

可以在调试时动态执行指定表达式,并将结果打印出来

image.png
  • po 指令, 打印值

image.png
  • p 指令, 打印详细信息

image.png
image.png

在 LLDB 中有两个常见的打印指令 p 与 po。

1、p 通常用于打印基本数据类型的值。这个指令会默认生出一个临时变量,如$1,学习过 Shell 的小伙伴看到这个应该很激动。
2、po 打印变量的内容,如果是对象,其打印的内容由 -debugDescription 决定。

  • bt 指令, 返回所有的调用栈, 形如:

image.png

操作内存指令

对内存的操作,无非就是读写操作。

  • 修改内存的值:
memory write 内存地址 数值

如:memory write 0x913a4eeaa28cbd45 @"name"

  • 读取内存的操作
memory read/数量 _ 格式 _ 字节数 内存地址
或者
x/数量 _ 格式 _ 字节数 内存地址
image.png

image.png

格式
x :代表16进制
f :代表浮点数
d :代表10进制


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

比如:
memory read/4wx 0x913a4eeaa28cbd45
memory read/4wd 0x913a4eeaa28cbd45

expr expr 表达式 可以在调试时动态执行指定表达式,并将结果打印出来,很有用的命令。
po po 表达式 与expr类似,打印对象,会调用对象description方法。是print-object的简写
p p表达式 也是打印命令,相比po打印的更加详细,是 print 的简写
bt bt [all] 打印调用堆栈,是thread backtrace的简写,加all可打印所有thread的堆栈
br br l 是breakpoint list的简写
process continue l process continue 简写:c
thread step-in l thread step-in l 简写:s
thread step-inst l thread step-inst l 简写:si
thread step-over l thread step-over l 简写:n
thread step-over-inst l thread step-over-inst l 简写:ni
thread step-out l thread step-out l 简写:f
thread list thread list 简写:th l

b:查看当前所有断点 c:继续 r:重新运行 n:下一步 p:打印 s:单步 po:打印对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,051评论 0 13
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,046评论 0 2
  • 你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThi...
    木易林1阅读 965评论 0 4
  • 回家的路 3月17日,我特别报了松江的佘山的半马,社群的朋友问,你从哪来?我从深圳来,你为什么要报会松江的半马?那...
    刘平五阅读 300评论 0 4
  • 有问题就直接解决问题。 一个女孩,因为别人说她的牙齿不好看,爸妈让她不要笑,她就不再微笑。其实她很善良,长得很漂亮...
    读李阅读 150评论 0 0