2011-06-02 1 views
7

J'ai un projet ocamlbuild simple qui utilise des batteries, y compris des extensions de syntaxe.Comment ocamldebug peut-il être utilisé avec un projet Batteries Included?

_tags:

<*>: pkg_batteries,pkg_threads,pkg_batteries.syntax,syntax_camlp4o 

something.ml:

open Batteries 
… 
let() = … 

Il est construit pour le débogage avec: cependant,

$ ocamlbuild something.d.byte 
$ ocamldebug something.d.byte 

Toute tentative d'utiliser la commande print dans ocamldebug, donne les éléments suivants erreur:

(ocd) print x 
Cannot find module Batteries. 

Cela ne semble se produire lors du débogage dans un champ où Batteries est open ed.

Quelle est la cause de cette erreur? Comment est-ce possible de travailler?

Répondre

8

Vous devez mettre les batteries à la disposition du débogueur; La commande dir et les options de ligne de commande -I permettent cela. Malheureusement, cela est plus difficile que cela devrait être parce que ocamlfind ne prend pas en charge ocamldebug. Mais vous pouvez le faire:

$ ocamldebug `ocamlfind query -recursive -i-format batteries` -I _build something.d.byte 

Cela passera une séquence de -I options pour ocamldebug de fournir les chemins d'pour localiser les modules correspondants.

+0

En effet, la première chose que j'ai faite a été de vérifier 'ocamlfind' pour sa capacité à invoquer' ocamldebug' et est venu court. Je pensais qu'il y avait quelque chose dans ce sens. Merci. Je vais confirmer et accepter une fois que j'ai. – jrk

Questions connexes