2011-11-10 19 views
8

OCamlでのトレースとデバッグにはどのようなものがありますか?OCamlでのトレースとデバッグ

デバッグのためにocamldebugとEmacsプラグインを試しました。

トレースのために、私はすべての変数のデータコンストラクタを印刷できるようにしたいと思います。 Camlp4のを使用して 例がここに示されています:あなたはバイトコードを使用することができるときhttp://caml.inria.fr/pub/docs/tutorial-camlp4/tutorial007.html#toc52

type colour = Red | Green | Blue 
    let print_colour = 
    function 
     Red -> print_string "Red" 
    | Green -> print_string "Green" 
    | Blue -> print_string "Blue" 
+0

ユーザー定義型の値を印刷する組み込みの方法はありませんが、さまざまな方法で問題を解決するいくつかの外部プロジェクトがあります。この以前の質問ページを参照してください:http://stackoverflow.com/questions/7518752/is-there-a-way-to-print-user-defined-datatypes-in-ocaml –

+0

トレースの場合、トップレベルは最も簡単な方法です、あなたの実験をすることができれば(データ構造のデバッグにはうまくいきますが、I/Oにはあまり適していません)。 – Gilles

答えて

9

ocamldebugが正常に動作します。

ネイティブコードアプリケーションをデバッグする場合は、gntを使用してOCamlプログラムで行ごとに行えるようにMantisにpatch by Thomas gazagnaireがあります。このパッチの一部は、次のバージョンのOCaml(3.13または4.00)に統合する必要があります。

現在のところ、OCaml値を印刷する方法はありませんが、GADTを使用して任意のタイプの汎用プリンタ機能を定義する別のパッチが来ています。

+0

こんにちは、2015年現在のgdb/lldbサポートの状態はどうですか? – Antoine

+0

バイトコードファイルとは何ですか?私はすべてを試して、 'ocamldebug'は「バイトコードではない」と言っています。 –

関連する問題