本文源自本人的学习记录整理与理解,其中参考阅读了部分优秀的博客和书籍,尽量以通俗简单的语句转述。引用到的地方如有遗漏或未能一一列举原文出处还望见谅与指出,另文章内容如有不妥之处还望指教,万分感谢。
常用LLDB指令集
-
print 、p
: 打印基本数据类型 -
po
: 打印对象 -
bt
:打印函数调用栈 -- >下断点,在控制台输入bt指令 -
expression
: 简写 - -> expr 修改变量的值 示例:expression str = @"嗨不嗨" expr str = @"你猜" -
si
: stepi -- step instruction 汇编指令级别的一行一行执行,并且可以进入函数 -
ni
: nexti 汇编指令级别的一行一行执行,不能进入函数
注意:step 、next去掉i
这个指令就表示是OC方法层面的执行 -
读取内存
memory read/数量格式字节数 内存地址
x/数量格式字节数 内存地址
- 示例:
x/3xw 0x10011
-
格式
-
x
:16进制 ,f
:浮点数 ,d
: 10进制
-
-
字节大小
-
b
: byte 1字节,h
: half word 2字节 -
w
: word 4字节,g
: giant word 8字节
-
-
修改内存中的值
memory write 内存地址 数值
- 示例:
memory write 0x0000010 10
-
单步运行,把子函数当做整体一步执行 (源码级别)
thread step-over
next
n
-
单步运行,遇到子函数会进入子函数(源码级别)
thread step-in
step
s
-
单步运行,把子函数当做整体一步执行(汇编级别)
thread step-inst
stepi
si
-
直接执行完当前函数的所有代码,返回到上一个函数(遇到断点会卡住)
thread step-out
finish
网友评论