Xcode的调试之GDB

前言

最近一段时间都在学习运行时,所以少写了几篇博客,今天给大家分享一下调试技巧。希望对大家有帮助。

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
极力推荐http://www.cnblogs.com/daiweilai/p/4421340.html

欢迎关注我的个人微信公众号,免费送计算机各种最新视频资源!你想象不到的精彩!


Xcode的调试之GDB_第1张图片
0.jpg

你可能感兴趣的:(Xcode的调试之GDB)