1

/usr/local/bin に lldb のツリーの最上位を構築しました。デフォルトのバイナリの代わりにこのバイナリを使用するように xcode に指示したいと思います。しかし、これを設定する方法/場所が見つかりません。

4

2 に答える 2

5

残念ながら、これは機能しません。lldb-179 が Xcode 4.6.x 用に分岐されて以来 (c. 2012 年 12 月初旬)、svn リポジトリ lldb に対していくつかの API 変更が行われました。LLDB.framework現在の svn からビルドしたものを入れると、/Applications/Xcode.app/Contents/SharedFrameworks/何かをデバッグしようとすると Xcode がクラッシュします。

背景として、lldb は実際にはデバッガライブラリであることを思い出してください。lldb ライブラリはLLDB.framework、ドライバ プログラムがリンクする Mac OS X 上にあります。コマンドライン「lldb」プログラムは 1 つのドライバーであり、Xcode は別のドライバーです。将来、追加のドライバー プログラムが存在する可能性があります。私たちは時々、"llgdb" について冗談を言います。このドライバー プログラムは、gdb のルック アンド フィールを備えていますが、lldb ライブラリを使用してすべての作業を行います。

lldb ライブラリーは、ドライバーがコードをプログラムしたりリンクしたりする API を提供します。これは C++ API です。現時点では、長期的に安定することは意図されていません。場合によっては、既存のメソッドを変更する必要があり、ドライバ プログラムを更新して新しいバージョンに再リンクする必要があります。LLDB.frameworkこれが、2012 年 12 月初旬のlldb (Xcode 4.6.x) に対してリンクするようにコンパイルされたドライバー プログラム (Xcode) が新しいものをドロップすると壊れる理由です。それらを混ぜようとするとクラッシュします。

Xcode 4.6 に含まれていたのと同じ lldb-179 lldb を取得するために svn からチェックアウトできる正確なリビジョンはありません。そのリリースにタグを付けるときが来たとき、lldb の安定したバージョンが選択され、Apple の内部リポジトリにインポートされました。それは 2012 年 12 月の第 1 週頃で、そこからの改訂は lldb-179 と見分けがつきません。それ以来、Xcode 4.6/lldb-179 には、lldb-179.1、lldb-179.2 などのマイナーな更新がいくつかありました。これらは、Apple の内部ブランチから作成されたもので、lldb-179 と厳選されたいくつかの修正です。後でパブリック svn リポジトリから。

が提供する C++ API に加えて、LLDB.framework興味深いことに、lldb も「SB API」を提供しています。これは、Python スクリプト インターフェイスの用語です。実際のデバッガー ドライバー プログラムをすべて Python で記述し、SB API を使用してバックグラウンドで実際のデバッガー作業を行うことができます。これらの python API は、 に直接リンクする場合、C++ API よりも安定しLLDB.frameworkていますが、将来設計上の決定を再検討する必要がある場合は、変更が必要になることがあります。

余談ですが、私の記憶が正しければ、Xcode 4.6 を svn lldb に対してリンクできないようにした最初の API 変更は、1 月か 2 月にコミットされました。これらの線に沿って、いくつかの方法を を取る からまたは 何かintを取るに変更する必要がありました。uint64_tこれらは C++ メソッドであるため、関数のマングル名が変更され、リンクを続行するには新しいバージョンの lldb に対して Xcode を再コンパイルする必要がありました。

于 2013-05-01T08:47:01.123 に答える