LLDB常用命令

apropos

  • 列出与单词或主题相关的调试器命令
  • eg: apropos br

breakpoint

  • 设置断点
  • breakpoint set -a 函数地址
  • breakpoint set -n 函数名
    • breakpoint set -n test (所有文件)
    • breakpoint set -n touchesBegan:withEvent: (所有文件)
    • breakpoint set -n "-[ViewController touchesBegan:withEvent:]" (ViewController这个类里边)
  • breakpoint set -r 正则表达式
  • breakpoint set -s 动态库 -n 函数名
  • breakpoint list (列出所有的断点)
  • breakpoint set --file test.c --line 12 (设置一个断点在文件test.c中的第12行)

watchpoint内存断点(在内存数据发⽣改变的时候触发)

  • watchpoint set variable 变量
    • watchpoint set variable self->age
  • watchpoint set expression 地址
    • watchpoint set expression &(self->_age)
  • watchpoint list

thread

  • thread backtrace
    • 打印线程的堆栈信息
    • 和指令bt的效果⼀样
  • thread return []
    • 让函数直接返回某个值,不会执⾏断点后⾯的代码

image lookup

  • image lookup -t 类型 :查找某个类型的信息
  • image lookup -a 地址 :根据内存地址查找在模块中的位置
  • image lookup -n 符号或者函数名 :查找某个符号或者函数的位置

image list

  • 列出所加载的模块信息
  • image list -o -f
    • 打印出模块的偏移地址、全路径

expression

  • expression self.view.backgroundColor = [UIColor redColor]

  • e @import UIKit

  • Debug View Hierarchy的时候

    变量需要加 $, 注意函数返回void
    (lldb) e id $view = (id)0x127817450;
    (lldb) e (void)[$view setBackgroundColor:[UIColor redColor]]
    (lldb) e (void)[CATransaction flush]
    

官方文档 https://lldb.llvm.org/use/map.html

你可能感兴趣的:(LLDB常用命令)