断点
breakpoint 帮助
$help
$help breakpoint 简写:break/b设置断点
$breakpoint set -n XXX
set 是子命令
-n 是选项 是--name 的缩写!在ViewController类的 save: 和 continue: 方法里面设置断点
$breakpoint set -n "[ViewController save:]" -n "[ViewController continue:]"在工程里面对调用方法 save: 设置断点
$breakpoint set --selecter save:给内存地址下断点
$watchpoint set expression 0x0000010339f58指定文件下的save: 方法下断点
$b set --file ViewController.m --selecter save:查看断点列表
$breakpoint list删除
$breakpoint delete 组号禁用/启用
$breakpoint disable 禁用
$breakpoint enable 启用遍历整个项目中满足Game:这个字符的所有方法
$breakpoint set -r Game:打断点后,同时执行一些命令
$break command add 编号根据内存地址找出崩溃在哪一行(根据调用栈找出自定义出错方法,要求源码)
$image lookup -a 0x10225a3f8查看头文件
$image lookup -t Person(一个对象)
流程控制
- 继续执行
$continue c - 单步运行,将子函数当做整体一步执行
$n next - 单步运行,遇到子函数会进去
$s
stop-hook
让你在每次stop的时候去执行一些命令,只对breadpoint,watchpoint
每个断点下,会执行frame variable 命令
$target stop-hook add -o "frame variable"删除hook
$undisplay 编号
$target stop-hook delete 编号
常用命令
- image list
- p/expression
- b -[xxx xxx]
- x // memory read 0x4593245 缩写
- register read // 寄存器读
- po
指令补充
- 使用p指令可以通过ctrl + enter 写多条代码
- bt // 打印调用栈信息
- frame select 编号 // 编号可以从bt指令运行后查看到,frame指令是打印编号对应的函数
- up/down指令,//根据调用栈,依据当前的断点,让断点移动到上一个/下一个调用函数里面
- frame variable // 查看当前函数的全部变量
- thread return // 函数的终结,等于给当前函数加了一个return
- watch set variable p1->_name