优三帝同学

上善若水,人淡如菊

嗨,我是优三帝 (@onevcat),一名 Unity 开发者。


欢迎访问我的博客~

Xcode4.2的debug小技巧

GNU Debugger(gdb)

一直是UNIX下最为流行的调试器,而在Cocoa框架中也一直被作为默认的调试工具。在gcc都被LLVM取代了的如今,gdb还是作为默认调试器,更可见其优秀特性。

最近在调试过程中发现了一些小窍门或者说是小技巧,不敢独飨。也许调试在大多数人看来不过是切断点,run程序,断住,然后开始分析。很多时候我们需要在gdb中一行行敲命令去控制gdb的运行,而如果我们右击代码段左侧的断点标记,可以发现一个很有趣的菜单,那就是Edit Breakponit。

然后你会发现,原来断点和调试器如此强大。不同的action可以解放你的双手完成无脑傻瓜调试,比如自动在断点处输入调试命令,按照需求输出log,为断点次数计数,执行shell命令,捕捉断点时的屏幕状态等,更甚至于可以运行AppleScript。熟悉AppleScript的朋友便知道这意味着什么,你甚至可以在gdb上外挂上自己的另外的程序,这是无数的可能。这种方式让我联想到用lua和python这样的脚本语言制作的各类插件,而AppleScript一向是被低估的语言(很大程度上是由于平台局限)。但是显然现在AppleScript可以用来作为一个gdb的插件语言,保不准明天它就会成为iOS设备上的标准插件语言,如果Apple有这样的气魄、决心和能力让AppleScript可以运行在iOS设备的话,对于所有的Cocoa开发者来说,都将是一场激动人心的革命(好吧因为系统的封闭性被打破,这也许对用户会是灾难..)~

总之,断点设置不错,配合AppleScript的话很好很强大,花上5分钟研究研究断点设置能实现的功能,一定能提高gdb的使用效率~

Buy me a coffeeBuy me a coffee
最近的文章

关于 NSURL 的解析和编码

NSURL毫无疑问是常用类,有时候我们需要对一个url进行分析整理,当然是可以按照RFC 1808的定义去自己分析,但是万能的Apple大大已经在SDK里扔了不少方法来帮助解析一个url了…方便又快捷呐~比如下面的输入:NSURL *url = [NSURL URLWithString: @"http://www.onevcat.com/2011/11/debug/;param?p=307#more-307"];NSLog(@“Scheme: %@”, [url scheme]);NSLo...…

能工巧匠集继续阅读
更早的文章

尘埃落定,下一站Kayac

AHRP2012秋季项目已经结束,春季项目博主可以以内定者的身份进行内推,具体可以参看这篇帖子。从10月初开始到现在,一个多月的求职尘埃落定,没有意外的话我明年将在日本镰仓(Kamakura)的Kayac公司开始自己的职业生涯。回顾这一个多月来的心情沉浮,颇有收获:从一开始的国内公司连连被拒,到之后几近看到出路,到最后寻找到Kayac,一路过来似乎有些宿命的感觉,而在一次又一次的笔试面试谈话中,确实渐渐看清了今后的道路和心中的诉求。这一个多月里,思考了很多人生的问题,整个人成熟了不少。Ka...…

胡言乱语集继续阅读