iOS开发之LLDB常用调试技巧 Debug的技巧有NSLog, LLDB, 但是NSLog效率低下,尽量少用NSLog。LLDB中强大的功能,完全能取代NSLog。 调试技巧:NSLogNSLog比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常用的popo可以打印一个对象,p可以打印基本数据类型,po也可以打印出视图的层级关系: [self.view recursiveDescription] ,但打印不出frame,打印frame可以使用call来调用一句代码: call self.view.frame 。 打印当前线程堆栈:bt打印所有线程中堆栈 bt all 。 寻找栈地址对应代码位置: imageimage lookup --address 0x000000000000 Condition & Action断点在断点处右键编辑断点,Log Message可以在符合条件时断住并打印出自定义信息:, 还有全局断点,符号断点。 (责任编辑:好模板) |