ios调试

作者: sunmumu1222 | 来源:发表于2016-09-26 00:55 被阅读23次

    # 异常断点

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

    好处:一些类在不满足条件时(如数组越界),会抛出异常导致程序崩溃,可在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网站上有专门的文档介绍每种工具的使用方法

    相关文章

      网友评论

          本文标题:ios调试

          本文链接:https://www.haomeiwen.com/subject/vmtqyttx.html