2013-11-28 3 views
2

Для школьного проекта я использую библиотеки ядра и асинхронной библиотеки Jane Street. Я пытаюсь отладить проблему с помощью syscall bind Unix, поэтому я запускаю ocamldebug myprogram. Это останавливается, когда возбуждается исключение (Unix.Unix_error), но при backstepping я получаю следующее сообщение:Включить отладку в пакетах opam

No source file for Async_parallel.Master_process. 

, который является файлом, в котором поднимается ошибка. Можно ли указать opam для создания пакетов, которые я устанавливаю, с помощью отладочной информации, чтобы я мог использовать ocamldebug для их проверки? В противном случае, что еще я могу сделать, чтобы обойти эту проблему?

Заранее благодарен!

ответ

3

Начиная с 4.01 ocaml компиляторы будут использовать переменную окружения OCAMLPARAM, чтобы включить определенные параметры. Попробуйте запустить с OCAMLPARAM="_,g" opam install .... Также см. https://github.com/ocaml/opam/issues/681

С другой стороны, отладка таких проблем намного проще и эффективнее с strace -e bind -f -ttT ./myprogram. Также Unix_error несет причину ошибки, не игнорируя ее.

+0

Я не могу найти документацию в переменной 'OCAMLPARAM'. У вас есть ссылки? – Antoine

+0

Я предполагаю, что это все еще экспериментально, используйте на свой страх и риск - https://github.com/ocaml/ocaml/blob/4.02.2/driver/compenv.ml#L144 – ygrek

Смежные вопросы