Xcode常用调试技巧

一、异常断点

作用:可以定位到导致程序异常崩溃的那行代码。

好处:一些类在不满足条件时(如数组越界),会抛出异常导致程序崩溃,可在Log中只能显示异常类型和调用栈的内存地址,很难定位到导致异常的具体代码,而通过添加异常断点,可以在程序崩溃时,定位到导致崩溃的异常所在的那行代码。

使用方法:在XCode左边视图中,切到断点面板,点击左下角的加号,选择“Add Exception BreakPoint",就会添加一条异常断点。

二、条件断点

作用:当满足某种条件时,程序才会在断点处暂停。

好处:这个老话题了,和Eclipse、VS一样,在特定场合提高调试效率,不用让程序不断的在断点处暂停,可以通过代码设置一个条件,也可以让程序忽略断点多少次,还可以设置在命中断点时执行debug命令。

使用方法:在断点处右击,选择"Edit Breakpoint...",在弹框中设置条件。PS:添加删除断点快捷方式:在代码行处"command+\"

三、运行时变量显示

作用:在程序运行时,获取成员对象的值

使用方法:1)通过NSLog()输出值 ; 2)通过断点暂停程序,在下面的窗口中,左侧可以显示对象树的信息,在右侧控件台中通过命令输出值。"p x"打印输出变量,"po x"打印输出对象,“po [xxviewrecursiveDescription]"打印view树信息。

四、日志输出

作用:通过在程序中添加NSLog代码,在控件台中输出显示日志。

注意事项:1)要通过宏可以在发布版中关闭这些日志输出,因为它可能会泄漏一些敏感数据,AppStore在审核时,会拒掉输出比较多Log的应用;  2)可以通过__FILE__, __LINE__, __PRETTY_FUNCTION__, NSStringFromSelector(__cmd)打印出文件名,行号,函数名

五、静态分析

作用:通过对代码静态分析,找出代码潜在的错误,如内存泄漏、空引用、未使用函数等。

方法:菜单“Product"->"Analyze"

六、动态分析

作用:通过Instruments工具跟踪分析程序运行时的数据

方法:菜单"Product"->"Profile"打开Instruments工具,里面有一系列内存、CPU、I/O等资源跟踪分析的工具,apple developer网站上有专门的文档介绍每种工具的使用方法

你可能感兴趣的:(Xcode常用调试技巧)