您的位置:首页 > 其它

Xcode的调试之GDB

2016-04-20 14:24 211 查看
今天给大家分享一下调试技巧。希望对大家有帮助。

Xcode使用的调试器是LLDB,但是我们仍可以在命令行中使用 GDB 命令来调试我们的程序。下面将介绍一些常用的命令以及调试技巧。

1.po 命令:为 print object 的缩写,显示对象的文本描述(显示从对象的 description 消息获得的字符串信息)。

2.print 命令:有点类似于格式化输出,可以输出对象的不同信息。

3.info 命令:我们可以查看内存地址所在信息,比如 "info symbol 内存地址" 可以获取内存地址所在的 symbol 相关信息;比如 "info line *内存地址" 可以获取内存地址所在的代码行相关信息。(貌似目前info命令,已经不支持了)。

4.show 命令:显示 GDB 相关的信息。如:show version 显示GDB版本信息。(这个命令也不被Xcode支持了)

5.help 命令:如果忘记某条命令的语法了,可以使用 help 命令名 来获取帮助信息。如:help info 显示 info 命令的用法。

在系统抛出异常处设置断点

有时候我们的程序不知道跑到哪个地方就 crash 了,而 crash 又很难重现,保守的做法是在系统抛出异常之前设置断点,具体来说是在 objc_exception_throw处设置断点。设置步骤为:

1.首先在 XCode 按 CMD + 6,进入断点管理窗口;

2.然后点击右下方的 +,增加新的 Symbolic Breakpoint,在 Symbol 一栏输入:objc_exception_throw,然后点击 done,完成。

这样在 Debug 模式下,如果程序即将抛出异常,就能在抛出异常处中断了。比如在前面的代码中,我让 [firstObjctcrashTest]; 抛出异常。在 objc_exception_throw 处设置断点之后,程序就能在该代码处中断了,我们从而知道代码在什么地方出问题了。

调试器调试

调试器就是介于你编写的应用程序和操作系统之间的一种程序,可以对你的程序进行控制,如停止,执行,单步跟踪等。

Xcode使用的调试器是GDB,Xcode除了有GDB外,还有一个微型调试器,它是一个浮动窗口,通过它我们能接跳过GDB调试器做一些简单的调试工作。

Xcode有一个提供大量概述信息的调试窗口,Xcode提供一个调试控制台,通过它可以直接向调试器发调试命令。

1.如何用调试器进行调试?

(1)编译程序时必须使用编译器的Debug配置,这样编译出的程序包含调试信息(调试器要用的信息)

(2)调试时 需要让程序在调试器模式下运行。

在Xcode中有两种运行程序的方法:

·Run->run (快捷键:command + R), 不用调试器运行程序;

·Run->Go(Debug)或者Run->Debug(快捷键:command+Y),使用调试器运行程序。

2.对断点的操作

如何设置断点?在边列(gutter)上单击就可以设置一个蓝色的断点;在次单击就disable该断点;如果要删除该断点 就将该断点拖出边列。

调试快捷键:(Xcode常用快捷键)

command+shift+Y 打开调试窗口

command+Y 调试运行程序

command+shift+O 查找

博客推荐:http://www.jianshu.com/p/5a707ac6cdd1

极力推荐/content/4198002.html

文/Peak_One(简书作者)

原文链接:http://www.jianshu.com/p/5ce3bd31e599

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: