デバッグモード
デバッグモードは、再現や理解が難しい厄介なバグの根本原因を特定し、修正するのに役立ちます。エージェントはすぐにコードを書き始めるのではなく、仮説を立て、ログステートメントを追加し、実行時の情報を活用して問題を正確に特定したうえで、的を絞った修正を行います。
デバッグモードを使う場面
デバッグモードは、次のような場合に適しています。
- 再現できるが原因がわからないバグ: 問題があることはわかっていても、コードを読んだだけでは原因が明らかにならない場合
- 競合状態やタイミングの問題: 実行順序や非同期の挙動に依存する問題
- パフォーマンスの問題やメモリリーク: 原因の把握に実行時プロファイリングが必要な問題
- 以前は動作していた機能のリグレッション: 何が変わったかを追跡する必要がある場合
通常のエージェントとのやり取りでバグの解決が難しい場合、デバッグモードは修正方法を推測するのではなく、実行時の証拠に基づく別のアプローチを提供します。
仕組み
-
探索と仮説の立案: エージェントが関連するファイルを探索し、コンテキストを構築して、考えられる根本原因について複数の仮説を立てます。
-
計測コードの追加: エージェントが、Cursor拡張機能で実行されているローカルデバッグサーバーにデータを送信するログステートメントを追加します。
-
バグの再現: デバッグモードがバグの再現を求め、具体的な手順を提示します。これにより、エージェントが実際の実行時の挙動をキャプチャする間も、作業に関与し続けられます。
-
ログの分析: 再現後、エージェントが収集したログを確認し、実行時の証拠に基づいて実際の根本原因を特定します。
-
的を絞った修正: エージェントが根本原因に直接対処する修正を行います。多くの場合、数行のコードだけで済みます。
-
確認とクリーンアップ: 再現手順を再実行して修正を確認できます。確認後、エージェントがすべての計測コードを削除します。
デバッグモードのヒント
- 詳細なコンテキストを提供する: バグの内容や再現方法を詳しく説明するほど、エージェントによる計測コードの精度が向上します。エラーメッセージ、スタックトレース、具体的な手順も含めてください。
- 再現手順を正確に実行する: ログに実際の問題が記録されるよう、エージェントが提示した手順を実行してください。
- 必要に応じて複数回再現する: バグを複数回再現すると、競合状態のような見つけにくい問題をエージェントが特定しやすくなる場合があります。
- 期待される挙動と実際の挙動を具体的に示す: 本来どのように動作すべきかと、実際にどうなっているかをエージェントが理解できるようにしてください。
モードを切り替える
- エージェント のモード選択ドロップダウンを使用する
- Shift+Tab ですばやく切り替える