1.br 某个类所有函数都打断点
br set --file ViewController.m -r "[ViewController .*]"
1.dis -a + 函数地址 :将函数的所有汇编全部打印出来!
2.
特别的(可以直接用 lldb 进制换算)
p/x # 十六进制
p/o # 八进制
p/t # 二进制
3.frame(栈帧)
配合 bt 使用,进入任意作用域
进入下标1的帧域
frame select 1
frame variable # 可以打印出当前 frame 调用栈的的所有变量。只接受变量作为参数,不接受表达式。
Image
image list # 列出当前App中的所有module
image lookup --address 0x00ff # 通过内存地址定位出错代码所在行
image lookup –name viewDidLoad # 查找一个方法或者符号的所在文件位置
image lookup -type HLSameThemeViewController # 会列出这个类的所有属性和成员变量,用于了解一个类
自动打印断点
断点+Action 可以让调试半自动化,避免每次触发断点,手动 po 的过程
支持多个 Action,实现多个 po 或者 call 多行代码
打印寄存器
register read #打印全部寄存器
re re #简写
re write #写寄存器
打印从地址开始的n行的汇编
x/5i 0x0000000101b24310 #打印从地址开始的n行指令汇编
x/5i 0x0000000101b24310
-> 0x101b24310: 0xa9bf7bfd stp x29, x30, [sp, #-0x10]!
0x101b24314: 0x910003fd mov x29, sp
0x101b24318: 0xa9bf4ff4 stp x20, x19, [sp, #-0x10]!
0x101b2431c: 0xa9bf57f6 stp x22, x21, [sp, #-0x10]!
0x101b24320: 0xa9bf5ff8 stp x24, x23, [sp, #-0x10]!
x -c 5 0x0000000101b24310 #从地址开始打印5个字节
x -c 5 0x0000000101b24310
0x101b24310: fd 7b bf a9 fd .{...
注意:x/5i打印出来的结果顺序是反的0xa9bf7bfd-->应为0xfd7bbfa9和 x -c打印的一致在arm和二进制互转网页上编码得到汇编果然如此:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。