我正在使用Xcode 4.3.1的C ++ 11语言方言以及libc ++作为标准库。这种组合中的语言支持是惊人的,但调试是折磨。 Xcode的“摘要格式”和lldb的摘要格式功能都不会显示任何标准类型(std :: string,std :: vector等)和漂亮的打印。为这些类型编写漂亮的打印机由于其复杂性而非常重要。 (例如,std :: string在libc ++中非常复杂。)
在这种情况下,其他开发人员如何为STL类型获得适当的变量显示?或者没有其他人使用libc ++和Xcode / lldb吗?
答案 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。