Как я могу использовать отладчик GUI для кода Prolog, который работает внутри приложения Java через JPL? - PullRequest
2 голосов
/ 10 марта 2011

Я разрабатываю приложение Java + Prolog через мост JPL. Основное приложение находится на Java и вызывает код Prolog, используя Query.oneSolution("doPrologStuff(here)")

Я попытался запустить отладчик / трассировщик GUI, используя Query.hasSolution("gtrace"), но выдает исключение:

Exception in thread "main" jpl.PrologException: PrologException: error(existence_error(procedure, /(gtrace, 0)), context(:(system, /('$c_call_prolog', 0)), _0))
    at jpl.Query.get1(Query.java:336)
    ...

(То же самое относится и к "guitracer")

Вызов gtrace. работает хорошо, когда я напрямую запускаю код Пролога в swipl.

Когда я пытаюсь Query.hasSolution("trace"), это позволяет мне отлаживать код с помощью текстовой консоли, но это не то, что я ищу. Любые идеи, как включить отладчик GUI?

Я использую Eclipse в Ubuntu для разработки, но я могу попробовать другие инструменты, если это поможет:)

1 Ответ

0 голосов
/ 31 марта 2011

Вам необходимо прикрепить графическое окружение Пролога (xpce).Вы можете сделать это, загрузив файл swi ('swipl.rc').Следующий вопрос - происходит ли диспетчеризация событий.Это зависит от настроек.Если вы используете последние версии 5.11.18 / 5.10.4, вы можете установить флаг Prolog xpce_threaded в значение true, что заставляет SWI-Prolog запускать инструменты разработки в своем собственном потоке (в настоящее время работает только в системах Unix / Linux).

...