Как определить, почему приложение Erlang не запускается? - PullRequest
5 голосов
/ 08 января 2010

Я пытаюсь запустить приложение Erlang, которое не работает. Все, что я вижу в оболочке:

=INFO REPORT==== 7-Jan-2010::17:37:42 ===
    application: ui
    exited: {shutdown,{ui_app,start,[normal,[]]}}
    type: temporary

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

Ответы [ 3 ]

13 голосов
/ 08 января 2010

Вы можете попробовать запустить оболочку с дополнительной поддержкой журналирования:

erl -boot start_sasl

это может дать немного больше деталей.

2 голосов
/ 13 апреля 2012

Существует патч (tp / supervisor-pass-on-errors), который был включен в выпуск R16B. Этот патч заставляет причины выхода появляться в сообщениях журнала останова приложения, которые, таким образом, становятся намного более полезными, чем сообщения в стиле {shutdown,{ui_app,start,[normal,[]]}}, которые мы имели до сих пор.

Это запись в README :

OTP-10490  == stdlib ==

    If a child process fails in its start function, then the
    error reason was earlier only reported as an error report
    from the error_handler, and supervisor:start_link would only
    return {error,shutdown}. This has been changed so the
    supervisor will now return {error,{shutdown,Reason}}, where
    Reason identifies the failing child and its error reason.
    (Thanks to Tomas Pihl)
0 голосов
/ 08 января 2010

Это боль, но то, как я это делаю, это старомодный способ, записывая io: format в функцию запуска приложения (т. Е. Код модуля с поведением приложения) и определяя, какая строка не удается: (

Иногда грубая сила и невежество - ваш единственный мужчина ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...