我使用 Xcode 4.3.1 的 C++11 语言方言以及 libc++ 作为标准库。这种组合的语言支持令人惊叹,但调试却是一种折磨。 Xcode 的“摘要格式”和 lldb 的摘要格式功能都不会以漂亮的打印方式显示任何标准类型(std::string、std::vector 等)。由于它们的复杂性,为这些类型编写一个漂亮的打印机非常重要。 (例如,std::string 在 libc++ 中非常复杂。)
在这种情况下,其他开发人员如何为 STL 类型获得像样的变量显示呢?或者还没有其他人在 Xcode/lldb 中使用 libc++ 吗?
瓦
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 初始化文件中。甚至 Xcode 也会显示格式良好的结构。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)