2011-02-17 27 views
3

根据这个错误信息产生多少搜索引擎来判断,我知道这是一个常见问题,但没有任何有用的答案。无法使XDebug在Vim中建立连接。 “没有attribue'停止'”错误

我试图在使用Sam Ghods Debugger.vim脚本的Vim中设置XDebug,同时遵循How to Debug PHP with Vim and XDebug on Linux(这是通过XDebug获得Vim安装程序的常见参考资料)的说明。我在OSX 10.6运行的MacVim 7.3,当我尝试调试器连接到服务器时,我得到:

(<type 'exceptions.AttributeError'>, AttributeError("DbgProtocol instance has no attribute 'stop'",), <traceback object at 0x104595680>) 
    File "/Users/tjlahr/.vim/plugin/debugger.py", line 1078, in debugger_run 
    debugger.run() 
    File "/Users/tjlahr/.vim/plugin/debugger.py", line 928, in run 
    self.protocol.accept() 
    File "/Users/tjlahr/.vim/plugin/debugger.py", line 560, in accept 
    self.stop() 

没有任何人有经验,解决此错误?

请注意,我没有调试端口9000,因为它似乎可能与PHP中启用的fastcgi冲突。因此,我正在通过端口9001进行调试,并分别通过php.ini和g:debuggerPort变量中的设置进行了更改。

感谢您的帮助。

+0

你可以发布你的php.ini的XDebug部分吗? – glomad 2011-02-21 18:41:24

回答

2

看来“AttributeError(”DbgProtocol实例没有属性'stop'“,)”是一个普遍的错误。

我刚刚安装了XDebug和debugger.vim插件,最终收到了这条消息。我的问题是没有启用远程调试。构建的phpinfo文件:

<?php 
    phpinfo(); 
?> 

在你的Web服务器目录里,并检查了所有的XDebug配置变量,它应该靠近页面底部被列出。在我的系统上,使用从GitHub仓库构建的xdebug-v2.2.0-dev,将xdebug.remote_enable设置为false。粘贴到php.ini文件的底部并将其值设置为1,可以使客户端连接到xdebug会话。

另外,在xdebug源文件中有一个名为“debugclient”的目录,它可以用来测试任何连接问题。按照其目录中的INSTALL文件中的说明进行构建。

最后一个想法是,在VIM中运行插件脚本后,您需要在5秒内刷新您尝试调试的网页,否则作为客户端的脚本将超时。

+0

我的经历与uxp相似。在我的情况下,这是xdebug扩展不可用于Apache。即由于缺少xdebug.so依赖关系,phpinfo()不显示xdebug设置。 – EricC 2014-01-29 21:37:50