前回の続き。ここに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 でビルドしたものをアタッチしてデバッグするのが現時点では無難だと思う。