5

Xcode4.3.1のC++11言語ダイアレクトとlibc++を標準ライブラリとして使用しています。この組み合わせでの言語サポートは素晴らしいですが、デバッグは苦痛です。Xcodeの「SummaryFormat」機能もlldbのSummaryFormat機能も、標準タイプ(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 シェルでは、次のことができます。

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 でさえ、適切にフォーマットされた構造を表示します。

于 2012-07-27T11:51:51.077 に答える
0

この機能はXcode4.4で正しく機能します。Xcode 4.3ユーザーにとって最善の解決策は、単にXcodeを更新することです。

于 2012-07-29T14:34:06.463 に答える