中三A105论坛

注册 登录
查看: 1008|回复: 0

关于llvm后由lldb和gdb

[复制链接]

105

主题

119

帖子

553

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
553
发表于 2019-4-23 23:49:56 | 显示全部楼层 |阅读模式

只是知道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的异常信息(一般情这种情况没有错误信息输出)。

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



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回顶部