LLDB

OSXでLLDBをビルドする

以下の手順でOSX用のLLDBがビルドできた。

上記で説明されているステップは以下の通り。

  • キーチェーンにlldb_codesignという名前で自己証明書を作成する
  • (Homebrewで)swigをインストール
  • ソースコードを取得する
  • 必要ならパッチを当てる

以上の準備が整ったら

$ open lldb.xcworkspace/

でワークスペースを開き、ターゲットをLLDBに変更すれば、Xcode上でLLDBを起動することができる。
ビルドにはちょっと時間がかかる。

とりあえず何でもよいのでコンソールアプリケーションのプロジェクトを作る。
XcodeのDerived Dataの設定を相対パスにしておくと、出力バイナリが探しやすい。
例えば~/helloにhelloというプロジェクトを作り、Derived Dataがbuildのとき、Edit SchemaのArguments Passed On Launchで

-- ~/hello/build/hello/Build/Products/Debug/hello

のように起動時にバイナリが指定できる。(先頭はハイフン二つ)

(lldb) b main
(lldb) r

で、起動してmain関数で止まるはずである。

上記手順にもある通り、OSX用のLLDBではJITサポートが無効になっている。これは Debugging JIT-ed Code With GDB で説明されている、JITでコンパイルしたコードをソースレベルデバッグする機能のこと。

もともとパフォーマンス上の理由により無効化されたらしいが、現在も無効のままの理由は不明。