关于xcode控制台

作者: 陈_某_某 | 来源:发表于2016-03-23 14:35 被阅读1424次

    (lldb) po self.view.frame

    (origin = (x = 0, y = 0), size = (width = 320, height = 568))

    (origin = (x = 0, y = 0), size = (width = 320, height = 568))

    (lldb)

    例如 :

    那么接下来这正是我们要解决的问题。

    首先在终端输入三个命令

    touch ~/.lldbinit

    echo display @import UIKit >> ~/.lldbinit

    echo target stop-hook add -o \"target stop-hook disable\" >> ~/.lldbinit

    输完命令后没有任何提示。那你就成功了。重新运行项目

    看到这个,你就成功了。

    现在运行到断点处,po self.view.frame


    (lldb) po self.view.frame

    (origin = (x = 0, y = 0), size = (width = 320, height = 568))

    (origin = (x = 0, y = 0), size = (width = 320, height = 568))

    (lldb)


    一目了然。


    那么不先用了怎么办呢,只要删掉.lldbinit就好了。

    1.打开终端,

    2输入 rm ~/.lldbinit

    回车,无反应就哦了。


    现在我们来刨根问底的看看它是怎么做到的。。

    首先:"po" : 我们知道,OC里所有的对象都是用指针表示的,所以一般打印的时候,打印出来的是对象的指针,而不是对象本身。如果我们想打印对象。我们需要使用命令选项:-O。为了更方便的使用,LLDB为expression -O --定义了一个别名:po.

    LLDB的Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。平时用Xcode运行程序,实际走的都是LLDB。

    LLDB有了一个启动时加载的文件~/.lldbinit,每次启动都会加载。所以一些初始化的事儿,我们可以写入~/.lldbinit中,比如给命令定义别名等。但是由于这时候程序还没有真正运行,也有部分操作无法在里面玩,比如设置断点。

    更多关于LLDB可以查看  浅谈LLDB


    touch ~/.lldbinit

    如果~/.lldbinit存在,使用touch指令可更改这个文件或目录的日期时间,包括存取时间和更改时间;

    如果~/.lldbinit不存在,touch指令会在当前目录下新建一个空白文件~/.lldbinit。


    echo display @import UIKit >> ~/.lldbinit

    echo:比如说你想往一个文件里面写一行东西, 可以通过命令:echo "需要写的东西"

     display :每次程序停止后显示表达式的值。表达式由程序定义的变量组成。


    echo target stop-hook add -o \"target stop-hook disable\" >> ~/.lldbinit

    target stop-hook add表示添加stop-hook,-o的全称是--one-liner,表示添加一条命令。arget stop-hook只对breakpoint和watchpoint的程序stop生效,直接点击Xcode上的pause或者debug view hierarchy不会生效

    ........想了解更多就去看看LLDB吧。UI图出来了。我干活去了。。。

    最后一句,xcode控制台应该叫LLDB控制台。

    相关文章

      网友评论

      • 那就这样咯:推荐楼主看一下Facebook的chisel插件,也是作用于lldb的,可以以预览的方式展示UIView,UIImageView,CALayer,打印图层级别等,github上面有的 :smile:
        陈_某_某:@那就这样咯 恩,中午午休的时候下下来看看,3q:+1::+1:

      本文标题:关于xcode控制台

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