• LLDB中的小技巧


    1、打印视图层次结构
    po [self.view recursiveDescription]
     
    2、临时调整界面UI
         比如说现在你需要改变一个控件的背景色来更好的查看布局的问题,这是就不需要重新跑一下项目:
         
    然后继续执行代码就可以实现更改。call命令也可以实现这个效果。
         说是执行(lldb) e (void)[CATransaction flush] 就不用等到继续执行就能看到效果,但是通过实验并没有达到想要的效果。
         e 命令还可以定义变量,然后再调试中使用:
            我们可以使用e命令定义变量,然后在调试中使用。看如下的例子:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    (lldb) e NSString *$str = @"http://www.huangyibiao.com"
    (lldb) po $str
    http://www.huangyibiao.com
     
    (lldb) e int $count = 10
    (lldb) p $count
    (int) $count = 10
    (lldb) e NSArray *itemArray = @[@"Test", @"Demo", @"huangyibiao"]
    (lldb) po $count
    10
     
     
    我们使用e声明了$str变量,然后下面就可以使用了。我们看到通过p命令打印出来的都是$开头的变量了吗?我们在声明和使用时也需要加上$符号,与PHP一样!
    在调试时,有时候想临时计算一下某个值来比较时,就可以通过这种方式来实现了,再也不用到源代码处添加上声明实现然后添加一句打印了,是否便利了很多?
    3、修改变量值
         expr variable = newValue
         
    4、监测某一个内存地址的内同改变
         watchpoint set -v variable
    如下图:
       
    5、条件断点
         在“Edit Breakpoint…”中可以填入需要满足断点的条件,满足条件就会断住程序。
         其中还可以添加action:

     

         同时也可以在Debugger中修改变量的值,同样适用expr,如下图:
    下面打上勾是让程序运行到这个位置不被断住。
         也可以在Log Message 中实现在调试过程中不用加入NSLog就能方便的输出日志的需求。
    6、随着xcode版本的跟新,好多以前可以在debug中的堆栈信息中看到函数的调用顺序,但是,现在的xcode隐藏了一些信息,如果想看完整的调用堆栈就使用bt命令,显示函数调用的堆栈。
  • 相关阅读:
    (二)vue.js axios封装(参考)
    (一)vue.js 项目搭建(参考)
    Centos7 Mysql配置安装
    自我学习及提高
    (一)Angular2 项目搭建教程(参考)
    WordPress学习网站
    Excel A表与B表对比 并将A表的id写到B表中
    C# 递归文件夹 文件名 路径
    C# 递归生成树(无限级)
    Windows API Code Pack 获取文件缩略图
  • 原文地址:https://www.cnblogs.com/lujianwenance/p/5702699.html
Copyright © 2020-2023  润新知