LLDB调试技巧

  • 时间:2020-11-08 03:58 作者:Linghit_iOS 来源: 阅读:59
  • 扫一扫,手机访问
摘要:LLDB命令expression :作用是执行一个表达式,并将表达式返回的结果输出执行某个表达式// 我们在代码运行过程中,可以通过执行某个表达式来动态改变程序运行的轨迹。如果我们在运行过程中,忽然想把self.view颜色改成红色,看看效果。我们不必写下代码,重新run,只要暂停程序,用expre

LLDB命令

  • expression :作用是执行一个表达式,并将表达式返回的结果输出
  • 执行某个表达式
// 我们在代码运行过程中,可以通过执行某个表达式来动态改变程序运行的轨迹。如果我们在运行过程中,忽然想把self.view颜色改成红色,看看效果。我们不必写下代码,重新run,只要暂停程序,用expression改变颜色,再刷新一下界面,就能看到效果// 改变颜色   (lldb) expression -- self.view.backgroundColor = [UIColor redColor]   // 刷新界面   (lldb) expression -- (void)[CATransaction flush]
  • 将返回值输出
  // 也就是说我们可以通过expression来打印东西。如果我们想打印self.view:  //  (lldb) expression -- self.view  // (UIView *) $1 = 0x00007fe322c18a10
  • p & print & call

    • print: 打印某个东西,可以是变量和表达式
    • p: 可以看做是print的简写
    • call: 调用某个方法
    • 表面上看起来他们可能有不一样的地方,实际都是执行某个表达式(变量也当做表达式),将执行的结果输出到控制台上。所以你可以用p调用某个方法,也可以用call打印东西
  • po

    • OC里所有的对象都是用指针表示的,所以一般打印的时候,打印出来的是对象的指针,而不是对象本身。假如我们想打印对象。我们需要使用命令选项:-O。为了更方便的使用,LLDB为expression -O --定义了一个别名:po
  • thread(thread backtrace & bt)

    • 有时候我们想要理解线程堆栈信息,可以使用thread backtrace
    • thread backtrace作用是将线程的堆栈打印出来。我们来看看他的语法
    thread backtrace [-c <count>] [-s <frame-index>] [-e <boolean>]//thread backtrace后面跟的都是命令选项://-c:设置打印堆栈的帧数(frame)//-s:设置从哪个帧(frame)开始打印//-e:能否显示额外的回溯//实际上这些命令选项我们一般不需要使用。
    • 当发生crash的时候,我们可以使用thread backtrace查看堆栈调用。LLDB还为backtrace专门定义了一个别名:bt,他的效果与thread backtrace相同,假如你不想写那么长一串字母,直接写下bt就可。
  • thread return

    • Debug的时候,也许会由于各种起因,我们不想让代码执行某个方法,或者者要直接返回一个想要的值。这时候就该使用thread return
      //thread return [<expr>]//thread return可以接受一个表达式,调用命令之后直接从当前的frame返回表达式的值。// e.g.// 方法-(BOOL)someth{    return YES;}// 我们可以改变其返回值//(lldb) thread return NO

Chisel

  • 详情
    Chisel是Facebook发布的LLDB命令的集合,用来帮助调试iOS应用程序。
  • 安装
// 安装需要使用到Homebrew,假如还没有安装Homebrew,可以使用下面的命令安装,假如你已经安装了,可以跳过这一步/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"brew updatebrew install chisel
  • ~路径下创立.lldbinit文件
touch .lldbinit open .lldbinit
  • 输入命令
command script import /usr/local/opt/chisel/libexec/fblldb.py
  • 升级
brew upgrade chisel
  • 相关使用可以去其GitHub上面看看:Chisel
  • 全部评论(0)
最新发布的资讯信息
【系统环境|】极客时间-数据分析实战45讲【完结】(2021-09-02 16:26)
【系统环境|windows】字节跳动前台面试题解析:盛最多水的容器(2021-03-20 21:27)
【系统环境|windows】DevOps敏捷60问,肯定有你想理解的问题(2021-03-20 21:27)
【系统环境|windows】字节跳动最爱考的前台面试题:JavaScript 基础(2021-03-20 21:27)
【系统环境|windows】JavaScript 的 switch 条件语句(2021-03-20 21:27)
【系统环境|windows】解决 XML 数据应用实践(2021-03-20 21:26)
【系统环境|windows】20个编写现代CSS代码的建议(2021-03-20 21:26)
【系统环境|windows】《vue 3.0探险记》- 运行报错:Error:To install them, you can run: npm install --save core-js/modules/es.arra...(2021-03-20 21:24)
【系统环境|windows】浅谈前台可视化编辑器的实现(2021-03-20 21:24)
【系统环境|windows】产品经理入门迁移学习指南(2021-03-20 21:23)
手机二维码手机访问领取大礼包
返回顶部