0
votes

It seems invoking im(). after invoking ./bin/mongooseim debug shell fails with message "call to i:im/0 in application debugger fails". However, when I do it typical Erlang shell, it opens up the window correctly. Any idea why ?

1
just to add some more info, what "./bin/mongooseim debug" does is "erl -same debug-0-mongooseim@localhost -setcookie ejabberd -remsh mongooseim@localhost -hidden" and it enters into a remote shell and then I type im(). and it shows up above error. I'm using ubuntu 15.04 with erlang/OTP 17 [erts-6.4.1] installed directly from erlang website.Weide Zhang

1 Answers

0
votes

There is several reasons starting debugger graphical interface could fails:

  • you are debugging a remote server and the server cannot display its UI on your local computer through SSH.
  • You are missing access to some Erlang components in the context of ejabberd.

As an example, I tried on my local computer and it worked fine:

$ ./ejabberdctl debug
...
Erlang/OTP 17 [erts-6.4] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:true]

Eshell V6.4  (abort with ^G)
(ejabberd@localhost)1> i:im().
<0.464.0>

It even worked with ejabberd binary installer after adding the debugger component for Erlang R17B-5 in INSTALLER_DIR/lib/. The component you need to add to binary installer to use the graphical debugger are: debugger and wx. Just copied those two dir and it worked.