rsp+
(在栈上)
(lldb) 命令 | 描述 |
run (r) | 开始执行,将一直执行直到遇到断点或进程终止。 |
continue (c) | 继续执行被调试的进程。 |
nexti (n / ni) | 执行下一条指令。此命令将跳过函数调用。 |
stepi (s / si) | 执行下一条指令。与nexti命令不同,此命令将进入函数调用。 |
finish (f) | 执行当前函数(“帧”)中的其余指令,返回并停止。 |
control + c | 暂停执行。如果进程已经运行(run (r))或继续(continue (c)),这将导致进程在当前执行的位置停止。 |
breakpoint (b) | b main #任何名为main的函数 b <binname>`main #二进制文件的main函数 b set -n main --shlib <lib_name> #指定二进制文件的main函数 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
注意,大多数Apple的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个组件数组 |