服务报价 | 域名主机 | 网络营销 | 软件工具| [加入收藏]
 热线电话: #
当前位置: 主页 > 开发教程 > ios开发教程 >

iOS开发之LLDB常用调试技巧

时间:2016-11-07 22:30来源:未知 作者:最模板 点击:
iOS开发之LLDB常用调试技巧 Debug的技巧有NSLog, LLDB, 但是NSLog效率低下,尽量少用NSLog。LLDB中强大的功能,完全能取代NSLog。 调试技巧:NSLog NSLog比printf的效率要低几十倍,因为NSLog会向A

iOS开发之LLDB常用调试技巧

Debug的技巧有NSLog, LLDB, 但是NSLog效率低下,尽量少用NSLog。LLDB中强大的功能,完全能取代NSLog。

调试技巧:NSLog

NSLog比printf的效率要低几十倍,因为NSLog会向ASL写log,同时向Terminal写log,而且同时会出现在Console.app中。NSLog尽量不要在release中打开,在Debug中可以写一个宏:

#ifdef DEBUG
#define NSLog(FORMAT, ...) do {fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);} while(0)
#else
#define NSSLog(...)
#endif

调试技巧:LLDB

常用的po

po可以打印一个对象,p可以打印基本数据类型,po也可以打印出视图的层级关系: [self.view recursiveDescription] ,但打印不出frame,打印frame可以使用call来调用一句代码: call self.view.frame 。

打印当前线程堆栈:bt

打印所有线程中堆栈 bt all 。

寻找栈地址对应代码位置: image

image lookup --address 0x000000000000

Condition & Action断点

在断点处右键编辑断点,Log Message可以在符合条件时断住并打印出自定义信息:, 还有全局断点,符号断点。

(责任编辑:最模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容