2012-09-15 1 views
0

У меня есть приложение Erlang на основе OTP, которое, кажется, ведет себя странно.Erlang dbg - Отладка на производственной OTP-системе с удаленной оболочкой

Я хочу подключиться к оболочке erlang и точно отслеживать, что происходит. Я могу сделать все свои звонки в dbg: tracer(), dbg: tp() и т. Д., Просто отлично, однако никакой вывод не отправляется в мою оболочку.

Я думаю, что это может быть, потому что я подключаюсь через удаленную оболочку.

Однако, когда я вызываю dbg: n (wiwob @ vlxd38-wob). Я получаю сообщение об ошибке:

** exception error: bad argument in an arithmetic expression 
    in operator -/2 
     called as [email protected] - wob 

Как я могу узнать, какую оболочку выход направляется и трубы его к моей оболочке?

ответ

1

Я не могу вам помочь в проблеме Dbg, не дает достаточно информации о том, как подключить отладчик к процессу, модулю ...

Для второй точки ошибка говорит само за себя, разбор выражения wiwob @ vlxd38-wob, оболочка попробует выполнить

wiwob @ vlxd38 минус wob, что невозможно с двумя атомами.

функция DBG: п/1 имеет на следующие характеристики:

n(Nodename) -> {ok, Nodename} | {error, Reason} 
Nodename = atom() 
Reason = term() 

так что вы должны написать имя узла как «wiwob @ vlxd38-WOB» для того, чтобы заставить все выражение быть один атом ,

3

Аргумент dbg:n/1 должен быть атомом, а [email protected] не является атомом, его нужно процитировать как '[email protected]'. Для синтаксиса атома и других типов данных см. Atoms.

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