关于llvm后由lldb和gdb

不问归期 提交于 2020-02-29 08:42:44

只是知道XCode4.0以后,编译器换成了LLVM 编译器 2.0肯定是因为LLVM更完美,因为人都是喜欢追求更完美的东西。不然也不会轻易更换,search了一篇才了解到:

与以前相比,更加强大:
1.LLVM 编译器是下一带开源的编译技术. 完全支持C, Objective-C, 和 C++.
2.LLVM 速度比 GCC快两倍,建立的程序也会运行的更快. 因为它更好的利用现代的芯片的结构.
3.LLVM和Xcode 4完全的整合在一起.包括关键字高亮,代码完整性等全都是由LLVM语法分析器来分析的. 这样可以在编辑的时候就可以很好的了解你的代码.

编译器进化之后,控制台调试命令前缀,也由原来的gdb更改成了lldb。当然以前的gdb命令如今还是可以完美的使用的。

关于调试的技巧和命令,其实我个人觉得在xcode里面用的很好。

用的比较多的命令就po 一个object,比较多的调试技巧就是添加一个exception断点。这个真的很好用,除了你的nib文件由野指针。一般都能准确定位你的异常在哪儿。

但是nib文件的也指针也是很好定位的。比如你nib文件中一个button指向的那个method找不到,lldb将给你-[LoginViewController onClickLogin:]: unrecognized selector sent to instance 0x7b75d00近乎完美的提示,显然提示LoginViewController里面找不到onClickLogin。

还有一个就是在scheme里面enable zombie object。它可以帮你打印EXC_BAD_ACCESS的异常信息(一般情这种情况没有错误信息输出)。

可能有很多总结的不到位的地方,欢迎拍砖。


这里也附上一篇很perfect的博文:http://blog.csdn.net/onlyou930/article/details/7894833

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!