Xcode 中 内置GDB(UNIX及UNIX-like下的调试工具),我们可以在命令行中使用GDB 命令来调试我们的程序。下面将介绍一些常用的命令以及调试技巧。
1.po 命令:为 print object 的缩写,显示对象的文本描述(显示从对象的 description 消息获得的字符串信息)。
![](https://i-blog.csdnimg.cn/blog_migrate/369f1863fed6412a07a8a304bf58321b.webp?x-image-process=image/format,png)
如上图所示,我使用 po 命令显示一个 NSDictionary 的内容:在想要打印的对象的当前行 或者下一行 打上断点,run你的程序,运行到断点处,在 右下角 的输出框 最后一行,写上 po 加上你的对象的名字,然后回车,就会出现 这个对象的描述; 图中 输入 是 po dict,然后回车,输出 下方 字典中的三个值;
左侧我们可以看到 dict 的一些信息:3 key/value pairs,显示该 dict 包含的数据量,而展开的信息显示 isa 层次体系(即class 和 metaclass结构关系)
2. 在系统抛出异常处设置断点(异常断点)
有的异常可以用异常断点来,确定异常的位置,帮助我们快速的找到错误的地方,
设置步骤为:首先在 XCode 按 CMD + 7,进入断点管理窗口;然后点击左下方的 +,增加新的 Exception Breakpoint,然后点击 done,完成。 这样在 Debug 模式下,如果程序即将抛出异常,就能在抛出异常处中断了。比如在前面的代码中,我让 [firstObjct crashTest]; 抛出异常。在 objc_exception_throw 处设置断点之后,程序就能在该代码处中断了,我们从而知道代码在什么地方出问题了。
![](https://i-blog.csdnimg.cn/blog_migrate/d633231b10e2c7b19d7470d13974babf.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/78d14b6a332d93f6bf50b4c40a12dc3f.webp?x-image-process=image/format,png)