美文网首页iOS精品文章-逆向
由一条微博引发的 — Xcode LLDB 调试断点总结

由一条微博引发的 — Xcode LLDB 调试断点总结

作者: iChanne | 来源:发表于2015-12-11 11:23 被阅读124次

最近逛微博,看到一条 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 编程实战》之调试

相关文章

  • 由一条微博引发的 — Xcode LLDB 调试断点总结

    最近逛微博,看到一条 LLDB 调试方法的微博,感觉是时候总结一下了,毕竟原文很简短,没有后续学习是看不懂的。简书...

  • 知识点-LLDB调试命令

    lldb是我们平时在打断点时候,打印面板出现的。 lldb是Xcode自带的调试工具,下面是常用的lldb调试命令...

  • ipa 包在模拟器中的路径

    在 Xcode 运行时,打断点,在调试区域(lldb) 后面输入 po [NSBundle mainBundle]...

  • iOS LLDB调试

    LLDB是XCode内置调试工具 我们加了断点,然后在运行到断点处就停了下来,接下来我们看到lldb这里了吗?我们...

  • LLDB命令

    lldb是我们平时在打断点时候,打印版出现的,它是Xcode自带的调试工具,下面是常用的lldb调试命令。 1、p...

  • LLDB基础(一)expression

    LLDB 我们通常都是在Xcode中对我们的项目进行打断点调试的时候所用的调试器就是lldb。相信大部分人对...

  • Xcode LLDB断点调试

    LLDB是高性能的程序调试器,当Xcode触发断点时,程序会自动进入LLDB调试环境,开发者可以在控制台进行LLD...

  • Xcode调试命令行工具 - lldb

    LLDB是XCode内置的为我们开发者提供的调试工具,可以在设置断点的时候在控制台中输入相关的lldb命令进行调试...

  • Swift 常用快捷键

    iOS开发之Xcode常用调试技巧总结 Xcode 常用快捷键 lldb技巧:

  • iOS实用小技巧

    iOS实用小技巧 Objective-C 1.让Xcode的控制台支持LLDB类型的打印 因为在Xcode断点调试...

网友评论

    本文标题:由一条微博引发的 — Xcode LLDB 调试断点总结

    本文链接:https://www.haomeiwen.com/subject/qqyyhttx.html