Call to i:im() in application debugger failed in m

2019-08-31 01:50发布

问题:

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:

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.