原文地址: http://blog.csdn.net/likendsl/article/details/7576549html
XCode4.0之后,编译器换成了LLVM 编译器 2.0程序员
与之前相比,更增强大:
1.LLVM 编译器是下一带开源的编译技术.彻底支持C, Objective-C, 和 C++.
2.LLVM 速度比 GCC快两倍,创建的程序也会运行的更快. 由于它更好的利用现代的芯片的结构.
3.LLVM和Xcode 4彻底的整合在一块儿.包括关键字高亮,代码完整性等全都是由LLVM语法分析器来分析的. 这样能够在编辑的时候就能够很好的了解你的代码.app
编译器进化以后,控制台调试命令前缀,也由原来的gdb更改为了lldb,因此当你看到控制台没有gdb而出现lldb的时候,不用惊慌,由于咱们之前经常使用的调试命令依然可使用:iphone
使用前提:函数
1.既然是调试命令,理所固然的,程序模式应该选择Debug模式。工具
2.在Debug模式下,若是你的程序在运行中崩溃(Crash)掉,那么恭喜你,使用lldb调试的机会来了。(还有一种方法就是 打断点 程序就会进入调试状态,能够在命令行输入一些命令)网站
符合以上两个条件以后,控制台(即日志输出窗口All Output)会自动打出一个(lldb)命令,你在其后输入bt,回车。spa
恭喜你,这时Xcode会自动输出最后的一次调用堆栈。以下:.net
其实说实话这个 真的挺难找的 我本身在百度上搜了半天的 Xcode命令行指令 可是出来的都不是我想要的结果 ,今天忽然就看到一个关于这个的博客,看了以后 我也将指令 在命令行里面敲了 试试 。确实颇有用! 可是 还有不少更厉害的功能我尚未研究出来 ,慢慢发现 ,慢慢更新把~~命令行
- 命令 解释
- break NUM 在指定的行上设置断点。
- bt 显示全部的调用栈帧。该命令可用来显示函数的调用顺序。
- clear 删除设置在特定源文件、特定行上的断点。其用法为:clear FILENAME:NUM。
- continue 继续执行正在调试的程序。该命令用在程序因为处理信号或断点而致使中止运行时。
- display EXPR 每次程序中止后显示表达式的值。表达式由程序定义的变量组成。
- file FILE 装载指定的可执行文件进行调试。
- help NAME 显示指定命令的帮助信息。
- info break 显示当前断点清单,包括到达断点处的次数等。
- info files 显示被调试文件的详细信息。
- info func 显示全部的函数名称。
- info local 显示当函数中的局部变量信息。
- info prog 显示被调试程序的执行状态。
- info var 显示全部的全局和静态变量名称。
- kill 终止正被调试的程序。
- list 显示源代码段。
- make 在不退出 gdb 的状况下运行 make 工具。
- next 在不单步执行进入其余函数的状况下,向前执行一行源代码。
- print EXPR 显示表达式 EXPR 的值。
- print-object 打印一个对象
- print (int) name 打印一个类型
- print-object [artist description] 调用一个函数
- set artist = @"test" 设置变量值
- whatis 查看变理的数据类型
若是能将这个运用的熟练的话 ,那么你的层次就会上升另外一个档次,在找bug方面 解决EXC_BAD_ACCESS错误的一种方法--NSZombieEnabled 一块儿使用,实在是查找crash的一大利器啊,非常方便!!
最后给打击推荐几个 网站
- CocoaDev,我的以为讲Cocoa技术十分专业的网站之一,下面的连接详细讲了讲NSZombieEnable的原理。http://www.cocoadev.com/index.pl?NSZombieEnabled
- 苹果官方的Mac OS X Debugging Magic,详细讲述了最为一个高级苹果程序员应该具有的调试技巧 http://developer.apple.com/library/mac/#technotes/tn2004/tn2124.html
- 其实还能够在Instruments中开启NSZombie选项,这样就能够在Instruments中直接查看crash时候的callstack了:http://www.markj.net/iphone-memory-debug-nszombie/