iOS 开发中 LLDB 常用命令整理

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命令可以在运行时添加一个响应事件的断点,步骤如下:

2017:7:10 -2.png
2017:7:10 -3.png
2017:7:10 - 1.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载 与调试器共舞 - LLDB 的华尔兹: https://objccn.io/issue-19-2/ 推荐:i...
    F麦子阅读 8,636评论 0 10
  • LLDB的Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。平时用Xc...
    CoderSC阅读 5,268评论 0 2
  • 你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThi...
    木易林1阅读 4,511评论 0 4
  • 前言 LLDB是个开源的内置于XCode的具有REPL(read-eval-print-loop)特征的Debug...
    Noskthing阅读 18,640评论 10 89
  • 我不由得停下来,驻足观赏。 眼前大大小小,高高低低的花,林林总总加起来估计有二三十盆。盆数很多,但样数并不多。全是...
    勇无止境2008阅读 2,890评论 7 10

友情链接更多精彩内容