LLDB 调试技巧集合

作者: 敲代码的树懒 | 来源:发表于2018-03-30 14:31 被阅读13次

LLDB是个开源的内置于XCode的调试工具,这里整理了一下开发过程中的常见用法。lldb对于命令的简称,是头部匹配方式,只要不混淆,你可以随意简称某个命令

1打印值,修改值,调用方法

1.1 p,po打印值

打印相关的命令有:p,

po。p和po的区别在于使用po只会输出对应的值,而p则会返回值的类型以及命令结果的引用名。

image.png

对比结果:

PO:输出值

号码:输出值+值类型+引用名+内存地址(xcode中中有内存地址,其它平台不确定)

除此之外,对还隐藏了一个有意思的功能,常量的进制转换:

image.png

1.2表达修改参数值

感觉EXP命令是调试过程中最有价值有命令了,它可以打印值,修改值。

image.png

表达:同样可以输出值+值类型+引用名,但其一般用于修改。

1.3调用方法调用

在断点调用某个方法,并输出此方法的返回值。

image.png

拨打:同样为输出值+值类型+引用名

2线程

2.1堆栈打印线程回溯

如果嫌堆栈打印太长,可以加一个值限制,如bt 10,只打印

image.png

2.2线程返回跳出当前方法的执行

Debug的时候,也许会因为各种原因,我们不想让代码执行某个方法,或者要直接返回一个想要的值。这个时候就该线程返回上场了。

有返回值的方法里,如:numberOfSectionsInTableView: ,直接线程返回10,就可以直接跳过方法执行,返回10。

image.png

2.3流程控制

实际上使用的Xcode自带的可视化工具来控制“继续”,“暂停”,“下一步”,“进入”,“跳出”更简单

image.png

2.4跳帧选择N

2.1中打印有10帧,如果我想跳转到第1帧:frame select 1

image.png

2.5查看帧变量帧变量

image.png

3图像

3.1图像查找地址查找崩溃位置

当你遇见数组崩溃,你又没有找到崩溃的位置,只扔给你一堆报错信息,这时候图像查询来帮助你。

image.png

寻找自己项目的标识,看到帧3位置,你只需这样查找位置:

image.png

项目中FW_MyHomeTableView.m:243,完美!

3.2图像查找名称查找方法来源

此命令可以用来查找方法的来源包括在第三方SDK中的方法,也能被查到。

例:查找transformOtherModelToSuit:

image.png

3.3 image lookup-type查看成员

查看某个类的所有属性和成员变量。不过貌似框架库中文件不能查看。

image.png

4断点

4.1文件名+行号断点集-f xxx -l xxx

我们平时操作的Xcode,在某一行点下断点,其实操作的就是这个命令。

image.png

4.2函数名断点

4.2.1方法名断点断点set -n方法名

image.png

提示:这里要说一下,xcode其实也有函数名断点,不过用断点set -n实现,比xcode下断点快N倍,不过xcode下的断点还给提示所有断到的位置。

结语:

有了这些命令,调试起来肯定就得心应手了总结下常用的

相关文章

  • LLDB 调试技巧集合

    LLDB是个开源的内置于XCode的调试工具,这里整理了一下开发过程中的常见用法。lldb对于命令的简称,是头部匹...

  • xcode调试技巧

    Xcode调试技巧之:LLDB Xcode调试技巧之:LLDB 1.输出视图层级关系(这是一个被隐藏的命令):po...

  • Swift 常用快捷键

    iOS开发之Xcode常用调试技巧总结 Xcode 常用快捷键 lldb技巧:

  • LLDB调试技巧

    一、常用的命令 1.print、po输出打印 打印变量的值可以使用print(简写p)命令,该命令如果打印的是基础...

  • LLDB 调试技巧

    https://juejin.im/post/5b1cd870e51d4506dc0ac76chttps://ww...

  • LLDB调试技巧

    上学时学c++,可以感受到gdb是复杂的调试工具,难以驾驭,使用其还不如直接打Log。 虽然打log是一种方法,但...

  • LLDB调试技巧

    LLDB命令 expression :作用是执行一个表达式,并将表达式返回的结果输出 执行某个表达式 将返回值输出...

  • iOS开发之LLDB常用调试技巧

    原文地址iOS开发之LLDB常用调试技巧用好了LLDB,让调试变得轻松愉快,本文会写出并示例讲解一些常用的指令,以...

  • iOS开发调试概览

    概述 我们都知道Xcode默认的调试器是LLDB(在此之前使用的是 GDB ),但是关于LLDB的debug技巧并...

  • 面试准备第八篇

    调试技巧 1.LLDB常用的调试命令? po:print object的缩写,表示显示对象的文本描述,如果对象不存...

网友评论

    本文标题:LLDB 调试技巧集合

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