iOS 开发中 LLDB 常用命令整理
-(void)loginWithUserName:(NSString *)username password:(NSString *)password
{
NSLog(@"login ===== username:%@ ===== password:%@", username, password); // 假设我们在此下断点
}
expression(或者缩写expr) 表达式
- expression $r6 = WG // 设置r6寄存器的值
- expression $r6 // 查看r6寄存器的值
- expression username(源代码中变量) = @"WG"
po 表达式
- po $r6
- po username
print (type)表达式
- print (int)$r6
- print username
bt [all] --- 打印调用堆栈
- bt - >返回如下:
* thread #1: tid = 0x1ee09, 0x00035e80 debug`-[ViewController loginWithUserName:password:](self=0x15d7be60, _cmd=0x00036441, username=0x15db0120, password=0x0003768c) + 168 at ViewController.m:34, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
* frame #0: 0x00035e80 debug`-[ViewController loginWithUserName:password:](self=0x15d7be60, _cmd=0x00036441, username=0x15db0120, password=0x0003768c) + 168 at ViewController.m:34
*
实践重点 (设置响应事件的断点--快速定位到view所点击的方法)
[ ] 在维护项目和进行二次开发时,经常debug要找出这个view或者button响应的方法.虽然打断点追踪或者直接看源代码也能找出button的target,但是这样效率是很慢的. 现在有一个LLDB命令可以在运行时添加一个响应事件的断点,步骤如下: