5

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

在这种情况下,其他开发人员如何获得适合 STL 类型的变量显示?还是没有其他人使用带有 Xcode/lldb 的 libc++?

4

2 回答 2

4

好吧,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 也会显示格式良好的结构。

于 2012-07-27T11:51:51.077 回答
0

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

于 2012-07-29T14:34:06.463 回答