Xcode 3.2 + LLVM =调试时没有本地符号

gle*_*ebd 10 debugging xcode gdb llvm clang

我有一个Mac OS X 10.5的项目,我使用Xcode 3.2在10.6上构建.当我使用GCC 4.2进行Debug构建并命中断点时,Xcode调试器通常会显示局部变量信息.如果我选择LLVM GCC 4.2或Clang LLVM,当我点击断点时,本地符号不可用,并且如果我尝试打印self或任何其他本地符号,GDB 在当前上下文中没有符号'self'.在所有情况下都设置了生成调试信息选项.Debug配置设置为和10.5 SDK,设置Build active architecture选项.当GDB启动时,我可以看到它被配置为x86_64-apple-darwin.我一定错过了一些明显的东西.使用LLVM编译器时,如何使GDB显示本地符号?$(NATIVE_ARCH)

Cla*_*ges 10

对于那些不熟悉的人来说,cdespinosa的回答更加细节,这对我有用,我投了赞.

  1. 从Xcode菜单中,选择Project> Edit Project Settings ...
  2. 选择"构建"选项卡
  3. 在搜索框中键入"优化级别",选择该字段,然后选择"无".
  4. 接下来搜索"调试信息格式",选择该字段,然后选择"DWARF"或"DWARF with dSYM".

如果我有权利的话,本来可以在评论中写这篇文章.;)

这花费了我一些重要的时间,坦率地说苹果公司有点邋,,但总的来说我不能抱怨.


cde*_*osa 6

确保使用Dwarf符号构建并且不进行优化.llvm是一个新的后端,并不是它的所有优化代码都连接到调试符号生成.


dod*_*gio 5

这可能有所帮助.尝试在项目的构建选项中关闭"链接时优化".这解决了我丢失调试符号的问题.

事实上,这解决了我与Clang的一系列奇怪问题.我会说这个功能太过于使用了.