2011-06-02 10 views
7

Tengo un proyecto simple ocamlbuild que utiliza baterías, incluidas las extensiones de sintaxis.¿Cómo se puede usar ocamldebug con un proyecto de Baterías incluidas?

_tags:

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

something.ml:

open Batteries 
… 
let() = … 

Está construido para la depuración con:

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

El intento de utilizar el comando print en ocamldebug, sin embargo, dicta la siguiente error:

(ocd) print x 
Cannot find module Batteries. 

Esto sólo parece ocurrir cuando se depura en un ámbito donde Batteries es open ed.

¿Cuál es la causa de este error? ¿Cómo es posible trabajar?

Respuesta

8

Tienes que hacer que las Baterías incluyan disponibles para el depurador; el comando dir y las opciones de línea de comando -I lo permiten. Desafortunadamente, esto es más difícil de lo que debería ser porque ocamlfind no es compatible con ocamldebug. Pero se puede hacer esto:

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

Esto pasará una secuencia de -I opciones para ocamldebug para proporcionar la incluyen rutas de acceso para localizar los módulos correspondientes.

+0

De hecho, lo primero que hice fue comprobar 'ocamlfind' por su capacidad para invocar' ocamldebug' y se quedó corto. Pensé que había algo en esta línea. Gracias. Confirmará y aceptará una vez que tenga. – jrk

Cuestiones relacionadas