美文网首页
Xcode断点调试技巧

Xcode断点调试技巧

作者: 薄凉_简书 | 来源:发表于2018-03-29 14:50 被阅读25次

Xcode为开发者提供了非常方便简单的调试工具,节省开发时间。
我个人习惯,每新建或者接手一个项目,都会设置一个全局断点,程序在抛出异常的时候基本会定位到异常代码。

1.Xcode左侧导航选择断点 --> 左下角选择“+” --> Exception Breakpoint异常断点
2.很多程序员在调试数据时,会在某处代码写一个NSLog,或者打一个断点Printing description,再或者在控制台输入po xxx等 LLDB 命令来查看数据,这些方法都很浪费时间
其中最不可取的就是NSLog

首先我们要知道NSLog不是简单的封装了printf,NSLog的大量使用会严重影响程序的运行效率,这个可以从苹果的API中找到关于NSLog的详细介绍。

Logs an error message to the Apple System Log facility.

NSLog就不是设计作为普通的debug log的,而是error log。

NSLog也并非是printf的简单封装,而是Apple System Log(后面简称ASL)的封装。

在使用NSLog 时,NSLog会向ASL写log,同时向Terminal写log,而且同时会出现在Console.app中(Mac自带软件,用NSLog打出的log在其中全部可见);不仅如此,每一次NSLog都会新建一个ASL client并向ASL守护进程发起连接,log之后再关闭连接。

总之,因为NSLog的大量使用(特别在循环中出现NSLog)对我们程序的运行造成严重的不良影响
3.用自动断点任务来代替Printing description 和po xxx等 LLDB 命令
  • <1>断点双击或者右键编辑
    Action 点击 Add Action,选择Debugger Command,输入要执行的 LLDB 命令,
    勾选 Automatically continue after evaluating actions ,执行命令后,继续运行程序。

    这样当每次断点被触发后,我们设置的自定义命令就会被执行。整个过程无需手动敲 LLDB 命令,节约不少的开发时间。
  • <2>条件断点
    Condition 在符合条件时触发断点,比如_isOpen == YES的时候


  • <3>忽略断点
    与条件断点相反,某些情况下我们不需要触发断点。比如,某个功能函数被多次调用,如果前两次调用不想触发断点,我们就可以忽略Ignore = 2


相关文章

  • Xcode控制台调试常用命令

    IOS Xcode调试常用命令和断点 Xcode 中的调试技巧与我们的日常开发息息相关,而这些调试技巧在我们解决B...

  • Xcode断点调试技巧

    Xcode为开发者提供了非常方便简单的调试工具,节省开发时间。我个人习惯,每新建或者接手一个项目,都会设置一个全局...

  • xcode 调试断点技巧

    添加条件 有时候我们可能会在某个循环中创建断点,但一次又一次地点击 continue 直到我们想要的条件出现,显然...

  • Xcode断点调试技巧

    1.普通断点 如果在一个循环中设置断点例如: 那么,每次经过断点,就会触发断点,并中止程序停下来. 2.满足指定条...

  • iOS实用小技巧

    iOS实用小技巧 Objective-C 1.让Xcode的控制台支持LLDB类型的打印 因为在Xcode断点调试...

  • Xcode编程 详细断点补充

    只会左键断点?是时候试试这样那样断点了 编码不能没调试,调试不能没断点(Break Point)。XCode的断点...

  • Xcode开发调试技巧—断点调试

    http://www.itcast.cn/news/20141015/16463596716.shtml 1.Co...

  • 5个Xcode开发调试技巧

    5个Xcode开发调试技巧 5个Xcode开发调试技巧

  • iOS 常用调试方法:断点

    级别: ★☆☆☆☆标签:「Xcode断点调试」「iOS breakpoint」「iOS全局断点」作者: Xs·H...

  • iOS开发之Xcode常用调试技巧总结

    iOS开发之Xcode常用调试技巧总结 iOS开发之Xcode常用调试技巧总结

网友评论

      本文标题:Xcode断点调试技巧

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