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



文/Peak_One(简书作者)
原文链接:http://www.jianshu.com/p/5ce3bd31e599
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值