美文网首页
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

可打印 出异常的栈调用

相关文章

  • iOS 调试

    iOS调试 - NSLog iOS调试 - 断点 iOS调试 - LLDB iOS调试 - EXC_BAD_ACC...

  • 各种调试技巧

    断点调试并配合LLDB常用调试命令LLDB命令详见:http://www.jianshu.com/p/d14a25...

  • 知识点-LLDB调试命令

    lldb是我们平时在打断点时候,打印面板出现的。 lldb是Xcode自带的调试工具,下面是常用的lldb调试命令...

  • LLDB命令调试与断点调试

    [LLDB命令调试与断点调试] https://my.oschina.net/notting/blog/11529...

  • iOS开发技能之lldb常用命令

    lldb命令调试 首先我们创建一个简单工程来调试这些命令。打断点,下方就可以进行lldb调试。 p & po po...

  • LLDB断点调试

    LLDB(Low Lever Debug)是一个轻量级的调试工具. 断点 通过指令breakpoint set -...

  • LLDB 断点调试

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

  • 常用调试命令

    LLDB常用命令 LLDB是LLVM下的调试器 p 输出基本类型 po 输出objc对象 expr 断点调试时,在...

  • iOS LLDB调试

    LLDB是XCode内置调试工具 我们加了断点,然后在运行到断点处就停了下来,接下来我们看到lldb这里了吗?我们...

  • LLDB调试(二)

    前言: lldb断点类型: 软件断点:正在调试的二进制文件中的断点,在调试器应使用一种迫使 CPU发出软件中断(又...

网友评论

      本文标题:LLDB 断点调试

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