1、让XCode反馈足够多的信息
在Edit–>Scheme里面 找到�Arguments ,在Environment Variables这里添加
把下面2个值设置成YES
NSAutoreleaseFreedObjectCheckEnabled
NSDebugEnabled
这种方法非常好用,建议在建立一个工程的时候,加入此设置
2. 让 NSLog 打印出 足够的信息
//A better version of NSLog
#define NSLog(format, ...) do { \
fprintf(stderr,"<%s : %d> %s\n", \
[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], \
__LINE__, __func__); \
(NSLog)((format), ##__VA_ARGS__); \
fprintf(stderr,"-------\n"); \
} while (0)
这是 把 系统的 NSLog 替换成这个宏了,你也可以 把这个宏 的名字 改改
这个 宏 可以打印出 类名 方法名 行号 ,和你要打印的信息,再也不用担心,无数的打印,而找不到 打印的地方了,----
使用Objetcive语言(强类型)并且用NSLog打印的时候,常常搞不清楚NSLog(@“%?”,xxx) 这种类型该是什么什么类型输出,应该是%d呢还是%@亦或是%f???根本分不清楚吗~,所以玩转NSLog你应该要知道以下这几个全局方法!
3. 调试过程中 动态的 改变 变量的值 :使用expr命令
可以在调试时动态执行指定表达式,并将结果打印出来。常用于在调试过程中修改变量的值。
如图设置断点,然后运行程序。程序中断后输入下面的命令:
expr a=2
你会看到如下的输出:
(int) $0 = 2
继续运行程序,程序输出的信息是:
实际值:2
很明显可以看出,变量a的值被改变。 除此之外,还可以使用这个命令新声明一个变量对象,如:
expr int $b=2
p $b
LLDB调试命令初探:http://www.starfelix.com/blog/2014/03/17/lldbdiao-shi-ming-ling-chu-tan/
网友评论