LLDB 调试

// -n 同 --name
//breakpoint set --name test1
//breakpoint set -n "[ViewController hankTest3:]"
//breakpoint set -n "[ViewController save:]" -n "[ViewController pauseGame:]" -n "[ViewController continueGame:]"
//breakpoint set --name "[ViewController hankTest1:]"
//breakpoint set --name "[ViewController touchesBegan:withEvent:]"
//b -[ViewController pauseGame:]                //有提示
//b -[ViewController touchesBegan:withEvent:]   //有提示
//b -a + 地址
//b -a + 地址[基地址(image list)+偏移值(文件中的值)]
//b -a + 地址[基地址(MachO首地址)+偏移值(MachO文件中的偏移)]

//所有的 touchesBegan:withEvent: 方法
//breakpoint set --selector touchesBegan:withEvent:
//breakpoint set --name touchesBegan:withEvent:

//指定文件(ViewController.m) hankTest1: 方法
//breakpoint set --file ViewController.m --selector hankTest1:
//breakpoint set --file ViewController.m --selector touchesBegan:withEvent:

//整个工程中所有带有hank字段的方法全部打上断点(区分大小写)
//breakpoint set -r hank    //b -r hank(简写)

//禁用
//breakpoint disable 3.1    //禁用一个
//breakpoint delete 3.1     //禁用一个
//breakpoint disable 3      //禁用一组
//breakpoint disable        //禁用所有
//break dis 3

//开启
//breakpoint enable 3.1     //开启一个
//breakpoint enable 3       //开启一组
//breakpoint enable         //开启所有

//删除
//breakpoint delete 3       //删除 组 3
//breakpoint delete         //删除所有


//c                         //继续
//n                         //单步往下走                     //源码级别
//s                         //单步往下走,遇到子函数进去        //源码级别
//ni                                                        //汇编级别
//si                                                        //汇编级别


//查看
//breakpoint list           //break list(简写)        //查看所有断点
//breakpoint list 6                                  //查看 组 6
//breakpoint list 6.1 和 breakpoint list 6 效果一样    //查看 组 6

//help breakpoint

//help

//执行
//expression
//p                 //p 是 expression的简写
//po                //(--object-description)
//help expression
//help p

//p [self.models addObject:[[Person alloc] init]];
//p (Person *)self.models.lastObject;                   //必须要类型转换
//p $0.name = @"xiao";
//p $0.age = 12;
//po $0.name
//po $0.age
//p $0.name
//p $0.age

//查看堆栈信息
//bt
//up                //跟进 往上
//down              //跟进 往下
//frame select 2    //查看方法 frame #2
//frame variable    //查看参数
//p str = @"123"    //修改参数

//thread return     //回滚


//内存断点
//watchpoint set variable p1->_name

//p &p1->_name
//watchpoint set expression 0x00006000017a9a30

//(watchpoint 和 breakpoint用法基本一样)



//breakpoint command add 1          //断点1 输入断点命令
//breakpoint command list 1
//breakpoint command delete 1



//添加 stop-hook
//target stop-hook add -o "frame variable"      //-o 一条命令
//target stop-hook add -o "p self.view"

//target stop-hook list
//target stop-hook delete
//target stop-hook disable



//image lookup -t Person        //查看文件信息
//image list                    //查看某块列表



//register read                     //读取寄存器
//register write + 地址              //写入寄存器
//memory read + 地址                 //读取内存值

你可能感兴趣的:(LLDB 调试)