美文网首页
xcode 中lldb命令调试

xcode 中lldb命令调试

作者: 星空WU | 来源:发表于2021-01-07 10:45 被阅读0次

    调出lldb命令窗口分:程序发生奔溃,会在下面窗口中显示lldb输入框

    设置断点是为了模拟奔溃,当然你也可以故意写一个越界的数组测试

    print命令

    打印变量的值可以使用print命令,该命令如果打印的是简单类型,则会列出简单类型的类型和值。如果是对象,还会打印出对象指针地址,如下所示:

        

    在输出结果中我们还能看到类似于$0,$1这样的符号,我们可以将其看作是指向对象的一个引用,我们在控制面板中可以直接使用这个符号来操作对应的对象,这些东西存在于LLDB的全名空间中,目的是为了辅助调试。

    上面的print命令会打印出对象的很多信息,如果我们只想查看对象的值的信息,则可以使用po(print object的缩写)命令,如下所示:

        

    expression

    在开发中,我们经常会遇到这样一种情况:我们设置一个视图的背景颜色,运行后发现颜色不好看。嗯,好吧,在代码里面修改一下,再编译运行一下,嗯,还是不好看,然后再修改吧~~这样无形中浪费了我们大把的时间。在这种情况下,expression命令强大的功能就能体现出来了,它不仅会改变调试器中的值,还改变了程序中的实际值。我们先来看看实际效果,如下所示:

    image

    image命令的用法也挺多,首先可以用它来查看工程中使用的库,如下所示:


    我们还可以用它来查找可执行文件或共享库的原始地址,这一点还是很有用的,当我们的程序崩溃时,我们可以使用这条命令来查找崩溃所在的具体位置,如下所示:

    这段代码在运行后会抛出如下异常:

    根据以上信息,我们可以判断崩溃位置是在main.m文件中,要想知道具体在哪一行,可以使用以下命令:

    可以看到,最后定位到了main.m文件的第23行,正是我们代码所在的位置。

    我们还可以使用image lookup命令来查看具体的类型,如下所示:

    可以看到,输出结果中列出了NSURL的一些成员变量及属性信息。

    image命令还有许多其它功能,具体可以参考Executable and Shared Library Query Commands

    转载自: 南峰子的技术博客 (LLDB调试器使用简介)

    相关文章

      网友评论

          本文标题:xcode 中lldb命令调试

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