在Xcode 4.3.1中使用libc ++时,如何获得合理的变量显示?

时间:2012-04-18 17:13:27

标签: debugging xcode4.3 lldb libc++

我正在使用Xcode 4.3.1的C ++ 11语言方言以及libc ++作为标准库。这种组合中的语言支持是惊人的,但调试是折磨。 Xcode的“摘要格式”和lldb的摘要格式功能都不会显示任何标准类型(std :: string,std :: vector等)和漂亮的打印。为这些类型编写漂亮的打印机由于其复杂性而非常重要。 (例如,std :: string在libc ++中非常复杂。)

在这种情况下,其他开发人员如何为STL类型获得适当的变量显示?或者没有其他人使用libc ++和Xcode / lldb吗?

2 个答案:

答案 0 :(得分:4)

w ^ 在lldb存储库中有支持。这就是我所做的:

svn co http://llvm.org/svn/llvm-project/lldb/trunk lldb

(我的修订版160855) 在Xcode的lldb shell中你可以做到:

command script import  /Users/arne/oss/lldb/examples/synthetic/libcxx.py

之后lldb更好地格式化std :: vector,std :: map,std :: string和std :: map:

(lldb) p rv
(std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >) $3 = size=2 {
  (unsigned long) [0] = 503
  (unsigned long) [1] = 503
}

我用Xcode 4.4进行了测试。应该与Xcode 4.3相似的工作

您可以将命令放在.lldbinit init文件中。甚至Xcode也会显示格式很好的结构。

答案 1 :(得分:0)

此功能在Xcode 4.4中正常运行。 Xcode 4.3用户的最佳解决方案就是更新Xcode。