コンテンツへスキップ

デバッグ

オープンであることは実用的な利点です。コードが利用可能で、ローカルで実行でき、コーディングエージェントを使用して質問への回答を迅速化し、コードベース内の潜在的なバグをデバッグできます。

デバッグ中にドキュメントの欠落や不備を見つけた場合は、docs/ 以下の英語ドキュメントを更新して PR を作成してください。

CI でスレッドダンプを取得する#

CLI が断続的にハングする場合、プロセスを停止せずにスレッドダンプを取得できます。シグナルハンドラを有効にし、実行中の tuist プロセスに SIGUSR1 を送信してください。

bash
export TUIST_THREAD_DUMP_SIGNAL=1
export TUIST_THREAD_DUMP_SAMPLE=1 # macOS only, captures all threads via /usr/bin/sample
tuist generate &
TUIST_PID=$!
sleep 600
kill -USR1 "$TUIST_PID"
wait "$TUIST_PID"

TUIST_THREAD_DUMP_SAMPLE が設定されていない場合、ハンドラは現在のスレッドスタックを出力します。出力は stderr に書き込まれるため、CI ログに表示されます。

コーディングエージェントを使用する#

コーディングエージェントは次のような場合に役立ちます。

  • 特定の動作がどこで実装されているかをコードベース内で検索する。
  • ローカルで問題を再現し、迅速に試行錯誤する。
  • Tuist 内での入力の流れを追跡し、根本原因を特定する。

可能な限り最小限の再現手順を共有し、エージェントを対象のコンポーネント(CLI、サーバー、キャッシュ、ドキュメント、またはハンドブック)に向けてください。範囲を絞るほど、デバッグプロセスはより迅速かつ正確になります。

頻繁に必要なプロンプト(FNP)#

予期しないプロジェクト生成#

プロジェクト生成によって期待していない結果が得られています。/path/to/project のプロジェクトに対して Tuist CLI を実行し、なぜこのようなことが起きているのかを理解してください。ジェネレーターのパイプラインを追跡し、出力を担当するコードパスを特定してください。

生成されたプロジェクトにおける再現可能なバグ#

これは生成されたプロジェクトのバグのように見えます。既存の例を参考にして、examples/ 以下に再現可能なプロジェクトを作成してください。失敗する受け入れテストを追加し、そのテストのみを選択して xcodebuild で実行し、問題を修正してから、テストを再実行して合格することを確認し、PR を作成してください。