2017-12-06 8 views
1

Ich habe die Lernprogramme für die Ocaml-Sprache und für Jbuilder gelesen. Das offizielle Tutorial zeigt one must compile Ocaml code using the '-g' flag mit ocamlc an, um dann ocamldebug zu starten.Erstellen von Debug-Builds von Ocaml-Code mit Jbuilder

Ich kann keine Debug Builds in der Jbuilder Dokumentation finden. Der einzige Abschnitt, der in der Nähe scheint, ist https://jbuilder.readthedocs.io/en/latest/jbuild.html#ocaml-flags. Aber auch wenn ich '-g' als Compilation Flag hinzuzufügen ..

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

..ich noch nicht scheinen, eine Debug-Binär zu erhalten:

$ ocamldebug [REDACTED] 
    OCaml Debugger version 4.04.2 

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

Mache ich etwas falsch? Wenn nicht, was ist die empfohlene Methode, Debugbuilds von jbuilder zu erstellen?

Antwort

2

ocamldebug funktioniert nur mit Bytecode-Builds. Sie produzieren nativen Code. Um einen Bytecode-Build zu erstellen, können Sie jbuilder unter Verwendung von prog.bc anstelle von prog.exe aufrufen.

Beachten Sie, dass dies möglicherweise nicht das ist, wonach Sie suchen: Sie können native Programme auch mit dem einfachen alten gdb debuggen, aber Sie müssen ein bisschen vertraut mit der Laufzeit sein.

+0

Nach der Dokumentation zu lesen, habe ich dies auf die jbuild Datei: (Modi (Byte)) Danach wurden .bc Dateien erzeugt und ocamldebug schien zu funktionieren. Ist dies die richtige Methode, um Bytecode zu produzieren oder gibt es einen besseren Weg? – Vishakh

+1

Ich glaube, '' modes (bytes)) 'betrifft nur das, was standardmäßig erstellt wird, aber Sie können' jbuild build prog.bc' immer ausführen. –

Verwandte Themen