分享

[转载]iOS崩溃日志crash logs追踪以及调试方法

 昵称2735774 2014-09-02
         在真机运行程序出现crash状况时,机器会自动产生log文件,它包含了在程序crash之前正在做什么的信息。在pc上对手机或者ipad设备进行同步,就可以将这些日志文件存储在电脑中。下面时如何找到这些日志文件:
1.同步你的移动设备;
2.浏览下面的文件夹,这里假设在iTunes中你的设备显示名称为DEVICE_NAME。那么日志文件的路径为:
Mac OS X : ~/Library/Logs/CrashReporter/MobileDevice/
Windows XP: C:Documents and Settings\Application DataApple computerLogsCrashReporter
Windows Vista: C:Users\AppDataRoamingApple computerLogsCrashReporterMobileDevice

3.每个日志文件都是以应用的名称开头。你可以将日志文件打包给开发者,以便开发者及时改进程序。

如何debug程序参见iphone参考文档Debugging Deployed iOS Apps

             而在开发程序过程也会出现程序crash的情况,那么这时生成的文件目录为:

~/Library/Logs/DiagnosticReports/

在该目录下有以.crash扩展名后缀的文件。

除了上面在出现崩溃后的查找crash的原因,而在程序编写调试的过程经常用到的调试手法为NSLog方法,打印出出错信息。但是,在iPhone 应用发布后,程序运行过程中尽量不要有调试 log 信息输出,因为这样会影响程序运行的效率。因此可以通过宏定义设置,使程序只在 debug 模式下输出对我们有用的信息, release 时不会输出。 具体步骤如下:

1、首先建立一个宏定义文件,文件内容如下: 
#if DEBUG 
#define debuglog(format, ...)   NSLog(format, __VA_ARGS__) 
#else 
#define debuglog(format, ...) 
#endif 
2,打开project-->Build setting选项,在下面找LLVM GCC4.2-preprocessing下面的-preprocessor macros  下一级 Debug中设置DEBUG=1 。

这样我们就可以做到log调试信息在release时不会输出,更好的提高应用性能。


如何编写高质量的代码可以参见Ensuring High Quality and Optimal Performance 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多