博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
由一条微博引发的 — Xcode LLDB 调试断点总结
阅读量:6166 次
发布时间:2019-06-21

本文共 1010 字,大约阅读时间需要 3 分钟。

最近逛微博,看到一条 LLDB 调试方法的微博,感觉是时候总结一下了,毕竟原文很简短,没有后续学习是看不懂的。简书贴图一直失败,无语,现在没有图片就将就看吧。

推特上Peter Steinberger分享了一个LLDB调试打印一些类型的小诀窍. 不过马上有人回复了一个更方便的方法.详情请戳原文.

微博截图中更方便的方法中用到的知识点是符号断点断点动作断点范围中的 User。

  1. 符号断点是什么?如何使用? 符号断点会在执行到特定符号时暂停程序(不管是你调用还是苹果调用)。符号可以是一个方法名、类中的一个方法或者任何 C 方法(objc_msgSend)。
  • 指向 -[NSException raise] 的符号断点与异常断点一样。
  • 指向 malloc_error_break 和 -[NSObject doesNotRecognizeSelector:] 的符号断点对调试与内存相关的崩溃很有帮助。
  1. 符号断点的符号Symbol如何书写?
  • 方法名:pathsMatchingExtensions:
  • 函数名:malloc_error_break
  • 指定类的方法名:减号(-)表示实例方法,加号(+)表示类方法 -[NSArray objectAtIndex:] -[UIViewController viewDidLoad]
  1. 断点的条件表达式Condition如何书写? i > 5000 i == 99 (BOOL)[item isEqualToString:@"three”],前面的(BOOL)是必须的,否则console会提示类型不符号,导致条件不能生效。

  2. 断点的动作Action是什么?断点到达后触发指定的动作。可以是 LLDB 命令,可以是 Python 脚本等等。最常见的用法应该是不停机加 log message 了。

  3. 断点范围:Specifying the Scope of a Breakpoint断点范围

  • User:当前用户所有的工程
  • Project:默认范围,当前打开的工程
  • Workspace:当前打开的工作空间
  1. 共享断点:将断点提交到版本系统,断点会保存到工程文件包的 xcshareddata 目录,将该目录提交到版本控制系统中即可共享。

  2. 观察点:到达断点时才能设置。观察点是有个数限制的,在intel CPU上最大是4个,在ARM CPU上最大是2个。

参考: 《iOS 编程实战》之调试

转载地址:http://umuba.baihongyu.com/

你可能感兴趣的文章
雅虎同意出售核心资产
查看>>
Win10大丰收的节奏 微软收编iOS全部150万应用
查看>>
AMD在SC16超算大会上宣布“Radeon开放计算平台”1.3版本
查看>>
智慧城市要除“城市病” 中兴通讯开辟新增长极
查看>>
华平蝉联“视频会议十大卓越品牌”
查看>>
Opera已确认解散iOS开发团队
查看>>
DevOps:新的业务浪潮
查看>>
CERT:启用EMET的Windows 7比Windows 10更加安全
查看>>
LINE上市:一场迟到、勇敢又无奈的IPO
查看>>
OA选型:OA系统工作流是核心
查看>>
如何发现“利用DNS放大攻击”的服务器
查看>>
Snapchat的用户增速在放缓,但公司打算从广告主身上拿到更多银子
查看>>
Facebook TIP项目简介
查看>>
黑客干扰可“致盲”特斯拉传感器 自动驾驶不等于无人驾驶
查看>>
托管OpenStack私有云能够获得支持or单打独斗?
查看>>
《Arduino开发实战指南:LabVIEW卷》——第2章 Arduino软件
查看>>
京津冀大数据走廊起笔谋篇
查看>>
WIFI连网一“吻”通 黑科技让无线路由器更智能
查看>>
【Xenserver】(三) 挂载CIFS库 iso镜像配置本地yum源
查看>>
Ovum光器件首席分析师:硅光子不是唯一解决方案
查看>>