《与调试器共舞 - LLDB 的华尔兹》学习笔记

原文: 与调试器共舞 - LLDB 的华尔兹

  • pexpression --的简写,poexpression -o --的简写,--表示参数截止。

  • e count = 10用来修改变量count的值,e NSArray* $abc = [NSArray array]用来声明一个变量。

  • thread return命令,它有一个可选参数,在执行时它会把可选参数加载进返回寄存器里,然后立刻执行返回命令,跳出当前栈帧,函数剩余的部分不会被执行。如:thread return NO

  • 暂停,用以下命令更新window上任一UI,点击继续即可看到更改后的效果:
    //打印window上所有view
    (lldb) po [[[UIApplication sharedApplication] keyWindow] recursiveDescription]

      //获取指定的view
      (lldb) e id $myView = (id)0x7f82b1d01fd0
    
      //对这个view做更改
      (lldb) e (void)[$myView setBackgroundColor:[UIColor blueColor]]
    
  • 查找按钮的target,用以下代码获取到按钮的target和action,然后设置一个符号断点即可:
    //获取$myButton的target
    (lldb) po [$myButton allTargets]
    //输出
    {(

    )}

      //获取上述target的action
      (lldb) po [$myButton actionsForTarget:(id)0x7fb58bd2e240 forControlEvent:0]
      //输出
      <__NSArrayM 0x7fb58bd2aa40>(
      _handleTap:
      )
    
  • 拓展:用debug view hierarchy 按钮可以更便捷地获取当前window上的视图地址,然后用上述方法对该视图进行修改:


    debug view hierarchy 按钮的位置
《与调试器共舞 - LLDB 的华尔兹》学习笔记_第1张图片
获取某个视图的地址

你可能感兴趣的:(《与调试器共舞 - LLDB 的华尔兹》学习笔记)