您的位置:首页 > 其它

xcode 调试技巧

2013-03-22 10:49 316 查看
IOS
调试技巧一:po
命令

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

 

(gdb)po dic

{

  fruit=Apple;

  car=BMW;

  pc=IBM;

}

IOS
调试技巧二:print
命令

有点类似于格式化输出,可以输出对象的不同信息。

 

(gdb) print (int)[str retainCount]  

$1 = 2  

IOS
调试技巧三:help
命令

当你忘记某条gdb命令的语法时,可以使用 help
命令名 来获取帮助信息。如:help show
显示 show 命令的用法。

 

(gdb) help show

Generic command for showing things about the debugger.

 

List of show subcommands:

 

show annotate -- Show annotation_level

show architecture -- Show architecture of target

show args -- Show argument list to give program being debugged when it is started

show arm -- Various ARM-specific commands

show auto-raise-load-levels -- Show if GDB should raise the symbol loading level on all frames found in backtraces

show auto-solib-add -- Show autoloading of shared library symbols

show backtrace -- Show backtrace specific variables

show breakpoint -- Breakpoint specific settings

show can-use-hw-watchpoints -- Show debugger's willingness to use watchpoint hardware

show case-sensitive -- Show case sensitivity in name search

............

IOS
调试技巧四:在系统抛出异常处设置断点

有时候我们的程序不知道跑到哪个地方就 crash 了,而 crash
又很难重现。保守的做法是在系统抛出异常之前设置断点,具体来说是在 objc_exception_throw处设置断点。设置步骤为:首先在 XCode
按 CMD + 6,进入断点管理窗口;然后点击右下方的 +,增加新的 Symbolic Breakpoint,在 Symbol
一栏输入:objc_exception_throw,然后点击 done,完成。
这样在 Debug 模式下,如果程序即将抛出异常,就能在抛出异常处中断了。比如在前面的代码中,我让 [firstObjctcrashTest];
抛出异常。在 objc_exception_throw 处设置断点之后,程序就能在该代码处中断了,我们从而知道代码在什么地方出问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: