Search code examples
erlangejabberdmongoose-im

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


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 ?


Solution

  • 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.