経験豊富なOCaml開発者が自分のコードをデバッグする方法を知ることができますか?OCamlコードを正しくデバッグする方法は?
私がやっていることはちょうどPrintf.printf
を使っています。クリーンな出力が必要なときに私がすべてコメントしなければならないので、面倒です。
このデバッグプロセスをより適切に制御するにはどうすればよいですか?特別なアノテーションは、それらを切り替えるlogging
のオンまたはオフ?
おかげ
経験豊富なOCaml開発者が自分のコードをデバッグする方法を知ることができますか?OCamlコードを正しくデバッグする方法は?
私がやっていることはちょうどPrintf.printf
を使っています。クリーンな出力が必要なときに私がすべてコメントしなければならないので、面倒です。
このデバッグプロセスをより適切に制御するにはどうすればよいですか?特別なアノテーションは、それらを切り替えるlogging
のオンまたはオフ?
おかげ
OCamlデバッガには、ステートフルプログラミングでは一般的に見られないものがあり、タイムトラベルと呼ばれるものがあります。セクション16.4.4を参照してください。基本的には、ステップごとの情報はすべてスタック上に保持されているため、処理中に保存された各ステップに関連する変更を維持することによって、そのステップの間の値を見るために時間の変化を移動することができます。各ステップのすべての値をデータ・ストアにロギングした後、そのステップで値を見るためにステップ番号に基づいてそのデータ・ストアに索引付けすると、プログラムを実行すると考えてください。
ocp-ppx-debug
を使用することもできます。printf
は、手動で追加するのではなく、適切な場所に追加されます。
https://github.com/OCamlPro-Couderc/ocp-ppx-debug