美文网首页
LLDB 断点调试

LLDB 断点调试

作者: 小宝_ab67 | 来源:发表于2018-05-10 09:56 被阅读0次

    断点


    1.添加断点

    1.给test1函数添加断点(C函数)set 是子命令, -n 是选项,是--name 的缩写:        

                breakpoint set -n test1

    2.给系统所有这个方法加断点:                    

              breakpoint set --selector touchesBegan:withEvent:

    3.指定文件 的某个方法添加断点:               

               breakpoint set --file ViewController.m --selector touchesBegan:withEvent:

    4.给ViewController类里面的三个方法添加断点             

            breakpoint set -n "-[ViewController save:]" -n "-[ViewController pauseGame:]" -n "-[ViewController continueGame:]"

    5.遍历整个项目中满足Game:这个字符的所有方法添加断点:       

             breakpoint set -r Game:

    6.遍历整个项目中满足 hank 这个字符的所有方法:        

             breakpoint set -r hank

            b  hank

    7.给指定类添加方法   敲         b hankT        就会出现提示,回车即可

            b -[ViewController hankTest1:]

    2.删除断点(只能删除某一组)

    删除第1组断点:    breakpoint delete 1

    删除所有断点:    breakpoint delete

    breakpoint delete 1.1    输出:0 breakpoints deleted; 1 breakpoint locations disabled.  没有断点被删除,只是被禁用

    3.启用/禁用断点  enable/disable  en/dis

    启用第1组断点:breakpoint enable 1                    简写:break  en 1    

    启用 第1组的第1个断点:breakpoint enable 1.1

     禁用所有断点:breakpoint disable                       简写:break  dis   

    4.查看断点列表

    breakpoint list

    5.流程控制

    继续执行(continue的简写)   c       

    单步运行,将子函数当做整体一步执行(next的简写)   n

    单步运行,遇到子函数会进去        s

    6.查看帮助

    breakpoint help

    p/expression 用法


                expression self.view.subviews

                po self.view.subviews    

                p self.view.subviews

                p 是 expression 的简写

    po   调用oc的description方法

    更改背景颜色            p self.view.backgroundColor = [UIColor redColor]

    调出断点函数调用栈            bt

    断点回退指令  回到调用这个方法的地方                up      down

     代码回退到上一个调用的地方,然后return掉               thread return

    //可以设置成功

    p (Person*)self.models.lastObject

    p $7.name = @“hnak"

    调出断点函数调用栈                bt

    断点回退/前进指令 ,回到调用这个方法的地方                up         down

    回到函数调用栈的某一个    定位到某个方法的具体调用位置    frame select 3

    打印出整个函数的参数    frame variable

    demo地址

    https://github.com/shuyangxiaobao/LLDB

    command + shift + M  可查看内存存储情况

    breakpoint set --file ViewController.m --selector  touchesBegan:withEvent:

    Breakpoint 1: where = 001--LLDB`-[ViewController touchesBegan:withEvent:] + 92 at ViewController.m:86, address = 0x0000000104bee3b0

     po self.models

    p [self.models addObject:[[Person alloc]init]]

    po self.models

    p (Person*)self.models[3] 

                    (Person *) $2 = 0x00000001c0220d80

    p $2.name

                    (NSString *) $3 = nil

    p $2.name = @"xiaoming"

                    (NSTaggedPointerString *) $4 = 0xa006412031812da8 @"xiaoming"

    po $2.name

                    xiaoming            

    po $2.age =  254

                    254        

    po $2

                    <Person: 0x1c0220d80>

    po sizeof($2)

                    8        

     control + 回车。可以代码换行

    p Person *p5 = [[Person alloc]init];

    p5.name = @"我是p5";

    p5.age = 31;

    [self.models addObject:p5];

    p (Person *)self.models[4]

                    (Person *) $14 = 0x00000001c0221ac0

    p (Person *)self.models.lastObject

                    (Person *) $5 = 0x00000001c0224ba0

      打印对象地址   p $5

                    (Person *) $5 = 0x00000001c0224ba0            

    p $5.age

                    (int) $6 = 256

    po $6

                    256

    设置对象属性值  p $5.age = 19

    获取对象字节大小       po sizeof($6)

                    4

    取地址               p &($6)

                    0x00000001034b46f0        


    添加断点,当改变p1的value值时断住

    watchpoint set variable p1->_name

    打印出内存存储的值

    po 0x0000000100620198

    給第一组断点添加代码            break command add 1

    查看command列表                  breakpoint command list 1

    调试数组越界奔溃


    调用[self test2];函数。

    image lookup -a 0x183c53fd8

    可打印 出异常的栈调用

    相关文章

      网友评论

          本文标题:LLDB 断点调试

          本文链接:https://www.haomeiwen.com/subject/rxzarftx.html