xcode调试之LLDB调试

2021-06-30  本文已影响0人  清宵寒夜

1.常用

@import 框架UIKit等

bt 打印当前线程堆栈

bt all 打印所有线程堆栈

up 向上查看堆栈

down 向下查看堆栈

frame select 层数 跳转到某一层的堆栈

frame variable 查看当前堆栈的变量

2.expression

expression $var=value 给变量赋值 可简写为expr 等同于p

expression -o --$var 等同于po $var

call function 调用某个方法(如改变当前控制器视图背景颜色 call [self.view setBackgroundColor:[UIColor redColor]])

disassemble 打印当前目标的汇编代码

3.target (target modules别名image)

target modules lookup -a $add 获取内存地址对应文件可简化为image lookup -a

#列举所加载的模块信息

1. image list

#查找某个类型的信息

2. image lookup -t 类型 可加-r -n有调试符号无调试符号-r -s

#根据内存地址查找到模块中的位置

3. image lookup -a 地址  #查找某个符号或者函数的位置

image lookup -v -a 地址  #查找完整的源代码行信息

4. image lookup -n 符号或者函数名

#打印模块的偏移地址、全路径

5. image list -o -f

register read  查看寄存器

stop-hook 让你在每次stop(断点)的时候去执行一些命令,只针对 breadpoint,watchpoint

4.thread 线程

NSThread callStackSymbols打印堆栈方法 等同于bt或bt all

thread return  跳过代码返回指定的值

thread backtrace 打印线程调用堆栈指令

#使用方法与代码的单步类似

thread list打印线程列表

thread step-inst-over、nexti、ni

thread step-inst、stepi、si

thread continue、continue、c :程序继续执行

thread step-over、 next、n:单步执行、把子函数当成整体一步执行完成

thread step-in、step、s:单步执行、遇到子函数会进入子函数中

thread step-out、finish:直接执行完成当前的函数的所有代码,返回上一个函数

上一篇下一篇

猜你喜欢

热点阅读