LLDB

Xcode调试基础

如下图:调试视图包括顶部调试命令栏,左边变量视图,右边控制台。
调试器工具栏从左到右功能分别是:断点是否有效,跳到下一个断点,单步执行,进入方法内部,跳出当前方法到上一个方法

image

定制断点

满足条件的断点

image

i == 500 时代码暂停执行

image

根据以上选项可选择不同提示,Log Message 将消息写入日志,Sound 播放声音,若勾选Automatically continue after evaluating ,则会在播放声音或写入日志后不暂停执行代码

条件综合使用的断点

image

该断点的作用是:当 i == 500,打印self.view的信息,同时ls查看根路径下的目录,输出a的值,并且播放声音且不停止执行代码

断点类型

image

符号断点(Symbolic Breakpoint)

该断点用于捕获特定方法或函数的所有方法

image

image

捕获viewDidLoad方法

异常断点 (All Exceptions)

image

异常断点,在发生异常时触发。通常会通过设置一个全局的异常断点,可提供比崩溃更详细的栈跟踪信息。有时候,异常断点能直接指出崩溃的根源。调试期间可以始终确保有一个全局的异常断点是一种最佳的实践。

LLDB调试

  • p (printf)打印标量表达式(eg a+b)或结构(CGRect)的值。po (print object)打印对象及其描述,可以查看特定内存的地址,也可以指定对象名。
  • list X:打印指定行后的10行代码。通过参数 -X可以指定断点前多少行代码
  • step (S)下一行
  • continue(C)越过断点继续执行
  • fin 执行到当前方法末尾
  • kill 终止执行程序

image