2017-12-06 9 views
1

私はOcaml言語とJbuilderのチュートリアルを読んでいます。オフィシャルチュートリアルでは、one must compile Ocaml code using the '-g' flagとocamlcを使用してocamldebugを実行しています。JbuilderでOcamlコードのデバッグビルドを作成する

Jbuilderのドキュメントには、デバッグビルドに関する記載がありません。近いと思われるセクションは​​です。しかし、私はコンパイルフラグとして「-g」を追加した場合でも..

(executable 
((name [REDACTED]) 
    (public_name [REDACTED]) 
    (libraries ([REDACTED])) 
    (flags (:standard -w [email protected] 
        -safe-string 
        -linkall 
        -g)) 
    (modules ([REDACTED])))) 

..私はまだデバッグバイナリを取得していないようです:

$ ocamldebug [REDACTED] 
    OCaml Debugger version 4.04.2 

(ocd) r 
Loading program... [REDACTED] is not a bytecode file. 

私が何か間違ったことをやっていますか?そうでない場合は、jbuilderからデバッグビルドを生成するための推奨される方法は何ですか?

答えて

2

ocamldebugは、バイトコードのビルドでのみ動作します。ネイティブコードを生成しています。バイトコードのビルドを作成するには、prog.exeの代わりにprog.bcを使用してjbuilderを呼び出すことができます。

これはあなたの後のものではないかもしれないことに注意してください:普通の古いプログラムgdbを使ってネイティブプログラムをデバッグすることもできますが、ランタイムに少し慣れている必要があります。

+0

ドキュメントを読んだ後、私はjbuildファイルにこれを追加しました: (モード(バイト))この後 、.BCファイルが生成され、ocamldebugが動作するように見えました。 これはバイトコードを生成する正しい方法ですか、それとも良い方法ですか? – Vishakh

+1

'(modes(bytes))'はデフォルトでビルドされているものだけに影響すると思いますが、いつでも 'jbuild build prog.bc'を実行できます。 –

関連する問題