zoukankan      html  css  js  c++  java
  • iOS Xcode 调试技巧

    一 NSLog调试

      官方文档:Logs an error message to the Apple System Log facility.

      即NSLog不是作为普通的debug log的,而是error log;其次,NSLog也不是printf的简单封装,而是Apple System Log(ASL)的封装

      ASL:大概是个系统级别的log工具,Syslog的替代版,提供了一系列强大的log功能,NSLog对它进行了高层次的封装

      详细的链接:http://blog.sunnyxx.com/2014/04/22/objc_dig_nslog/

      大致是说: NSLog比printf得效率低几十倍,因为NSLog会向ASL写log,同时向Terminal写log,而且同时会出现在Console.app(Mac 自带的软件,用NSLog打出的log在其中全部可见)中;不仅如此,每一次NSLog新建一个ASL client并向ASL守护进程发起连接,log后再关闭连接.而且,NSLog每次会将当前的系统时间,进程和县城信息等作为前缀打印出来,这也会引起消耗

       可在Debug中写一个宏:

    //使用自定义的NSLog,在调试的时候自动隐藏
    
    #ifdef DEBUG
    #define BSLog(...) NSLog(__VA_ARGS__)
    
    #else
    #define BSLog(...)
    #endif

     

    二 简单断点+po(p)命令调试

       断点时可以在Xcode的lldb调试区使用po或p命令打印对象或变量,对于当前栈帧中引用到的变量都是可见的,所以说假如只是看一眼某个对象运行到这是不是存在,是什么值的话,设个断点就够了,况且IDE已经把这个功能集成,鼠标放变量上就可以了

    三 Condition

      

  • 相关阅读:
    编译使用luasocket
    使用openssl的一些问题
    c++调用lua注册的带参数的回调
    合服
    windows防火墙命令
    mac os .xip格式解压
    Get GPU Data Method
    Unity编译Mono
    Unity Mono运行机制分析及内存优化
    unity5 AssetBundleBuild用法
  • 原文地址:https://www.cnblogs.com/roxy/p/6097680.html
Copyright © 2011-2022 走看看