加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长资讯 > 评论 > 正文

iOS常用调试方法:LLDB命令

发布时间:2019-04-27 17:55:22 所属栏目:评论 来源:360技术
导读:在iOS项目开发过程中,常用到静态分析(Analyze)、断点(BreakPoint)和控制台(Console)进行代码调试。本篇文章介绍Xcode常用调试方法之LLDB命令。 本文来自360奇舞团QiShare团队投稿。 相关阅读: 《iOS 常用调试方法:静态分析》 《iOS 常用调试方法:断点

另外,开发者可以按照print/的语法为print命令指定打印格式:

  1. p/x  //!< 以十六进制打印整数 
  2. p/d  //!< 以带符号的十进制打印整数 
  3. p/u  //!< 以无符号的十进制打印整数 
  4. p/o  //!< 以八进制打印整数 
  5. p/t  //!< 以二进制打印整数 
  6. p/a  //!< 以十六进制打印地址 
  7. p/c  //!< 打印字符常量 
  8. p/f  //!< 打印浮点数 
  9. p/s  //!< 打印字符串 
  10. p/r  //!< 格式化打印 

p/x //!< 以十六进制打印整数p/d //!< 以带符号的十进制打印整数p/u //!< 以无符号的十进制打印整数p/o //!< 以八进制打印整数p/t //!< 以二进制打印整数p/a //!< 以十六进制打印地址p/c //!< 打印字符常量p/f //!< 打印浮点数p/s //!< 打印字符串p/r //!< 格式化打印

示例如下:

  1. (lldb) p count 
  2. (NSUInteger) $0 = 10 
  3.  
  4. (lldb) p/t count 
  5. (NSUInteger) $1 = 0b0000000000000000000000000000000000000000000000000000000000001010 
  6.  
  7. (lldb) p/o count 
  8. (NSUInteger) $2 = 012 
  9.  
  10. (lldb) p/x count 
  11. (NSUInteger) $3 = 0x000000000000000a 
  12.  
  13. (lldb) p/x string 
  14. (__NSCFConstantString *) $4 = 0x000000010416a0b8 @"QiShare" 
  15.  
  16. (lldb) p/c string 
  17. (__NSCFConstantString *) $5 = xb8xa0x16x04x01 @"QiShare" 
  18.  
  19. (lldb) p/s string 
  20. (__NSCFConstantString *) $6 = @"QiShare" 
  21.  
  22. (lldb) p/a string 
  23. (__NSCFConstantString *) $7 = 0x000000010416a0b8 @"QiShare" @"QiShare" 

5. 线程

thread是线程相关的命令,语法为thread [],它可以接受不同的可选参数,以实现丰富的功能。其中thread list、thread backtrace和thread return较为常用。

开发者可以使用thread list命令查看当前的所有线程,示例如下:

  1. (lldb) thread list 
  2. Process 4031 stopped 
  3. * thread #1: tid = 0x25cac, 0x0000000104167e23 QiDebugDemo`-[QiConsoleViewController testLLDBCommands](self=0x00007f850df0bbf0, _cmd="testLLDBCommands") at QiConsoleViewController.m:34, queue = 'com.apple.main-thread', stop reason = breakpoint 4.1 
  4.   thread #2: tid = 0x25d2f, 0x00000001079ff28a libsystem_kernel.dylib`__workq_kernreturn + 10 
  5.   thread #3: tid = 0x25d30, 0x00000001079ff28a libsystem_kernel.dylib`__workq_kernreturn + 10 
  6.   thread #4: tid = 0x25d31, 0x00000001079ff28a libsystem_kernel.dylib`__workq_kernreturn + 10 
  7.   thread #5: tid = 0x25d32, 0x00000001079ff28a libsystem_kernel.dylib`__workq_kernreturn + 10 
  8.   thread #6: tid = 0x25d33, 0x00000001079ff28a libsystem_kernel.dylib`__workq_kernreturn + 10 
  9.   thread #7: tid = 0x25d3e, 0x00000001079f520a libsystem_kernel.dylib`mach_msg_trap + 10, name = 'com.apple.uikit.eventfetch-thread' 

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读