rsp+
(在堆栈上)
(lldb) 命令 | 描述 |
run (r) | 开始执行,直到遇到断点或进程终止。 |
continue (c) | 继续执行被调试的进程。 |
nexti (n / ni) | 执行下一条指令。该命令会跳过函数调用。 |
stepi (s / si) | 执行下一条指令。与nexti命令不同,该命令会进入函数调用。 |
finish (f) | 执行当前函数(“frame”)中剩余的指令,然后返回并停止。 |
control + c | 暂停执行。如果进程已经运行(r)或继续(c),这将导致进程在当前位置停止执行。 |
breakpoint (b) | b main #任何名为main的函数 b <binname>`main #二进制文件的主函数 b set -n main --shlib <lib_name> #指定二进制文件的主函数 b -[NSDictionary objectForKey:] b -a 0x0000000100004bd9 br l #断点列表 br e/dis <num> #启用/禁用断点 breakpoint delete <num> |
help | help breakpoint #获取断点命令的帮助 help memory write #获取写入内存的帮助 |
reg | reg read reg read $rax reg read $rax --format <format> reg write $rip 0x100035cc0 |
x/s <reg/memory address> | 将内存显示为以空字符结尾的字符串。 |
x/i <reg/memory address> | 将内存显示为汇编指令。 |
x/b <reg/memory address> | 将内存显示为字节。 |
print object (po) | 这将打印参数引用的对象 po $raw
请注意,大多数苹果的Objective-C API或方法返回对象,因此应通过“print object”(po)命令显示。如果po没有产生有意义的输出,请使用 |
memory | memory read 0x000.... memory read $x0+0xf2a memory write 0x100600000 -s 4 0x41414141 #在该地址写入AAAA memory write -f s $rip+0x11f+7 "AAAA" #在该地址写入AAAA |
disassembly | dis #反汇编当前函数 dis -n <funcname> #反汇编函数 dis -n <funcname> -b <basename> #反汇编函数 |
parray | parray 3 (char **)$x1 #检查x1寄存器中的3个组件的数组 |