前回の続き。ここにXcodeでのデバッグ手順を記す。
環境
以下の環境で確認している。
|
|
Xcodeでのデバッグ手順
XcodeでUSDのコードをデバッグするまでの手順を示す。
Xcodeプロジェクトの生成
build_scripts/build_usd.py
の引数 generator
に Xcode
を指定するとXcodeプロジェクトの生成と併せてCMakeのビルドが始まる。
|
|
デバッグの場合は --build-variant
に debug
を指定する。以下に実行例を示す。
|
|
build_scripts/build_usd.py
の処理が完了したら、 xcode/build/PixarUSD/usd.xcodeproj
の存在を確認する。
Xcodeプロジェクトのスキーマ設定
xcode/build/PixarUSD/usd.xcodeproj
を開くと以下の設問がある。どちらを選択しても良い。ここでは Automatically Create Schemes
を選ぶ。
スキーマの一覧から install
を選ぶ。
Xcodeでビルド
スキーマ install
をビルド (Command + b
) する。
Xcodeでデバッグ実行
例としてコマンド usdcat
をアタッチしてデバッグする。
usdcat
のソースコード usdcat.cpp
を開きmain関数があるL317にブレイクポイントを置く。ファイルはXcodeのProject Navigator (Command + 1
)にあるツリーからusd (プロジェクト) > pxr > usd > usdcat > Source Filesと辿ったところにある。
Debug にある Attach to Process by PID or Name...
をクリックする。
usdcat
を指定してAttachボタンをクリックする。
そうするとXcodeが usdcat
のプロセスが立ち上がるまで待機する。
その後、ターミナルで xcode/bin/usdcat
を実行するとブレイクポイントで止まる。
余談
Xcodeでスキーマ usdcat
でビルドすると、スキーマ install
との rpath
の違いから動作に差がある。当記事のようにスキーマ install
でビルドしたものをアタッチしてデバッグするのが現時点では無難だと思う。