似乎在调用im()
。在调用./bin/mongooseim debug
shell失败后,消息"在应用程序调试器中调用i:im/0失败"。但是,当我使用典型的Erlang shell时,它正确地打开了窗口。知道为什么吗?
启动调试器图形界面失败有以下几个原因:
- 你正在调试一个远程服务器,服务器不能通过SSH在你的本地计算机上显示它的UI。
- 在ejabberd的上下文中,你无法访问一些Erlang组件。
作为一个例子,我在我的本地计算机上尝试了一下,它工作得很好:
$ ./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>
在INSTALLER_DIR/lib/
中添加Erlang R17B-5的调试器组件后,它甚至可以与ejabberd二进制安装程序一起工作。需要添加到二进制安装程序以使用图形化调试器的组件是:debugger
和wx
。只要复制这两个dir就行了