使用NetBeans / XDebug调试Zend Framework项目

时间:2010-02-13 21:04:48

标签: php zend-framework netbeans xdebug

是否有人能够设置Zend Framework项目的NetBeans调试?我在我的机器上运行本地XAMPP,以及NetBeans 6.8。从phpinfo()的外观来看,XDebug已正确安装在XAMPP上。我开始使用NetBeans调试会话,它连接到XDebug并打开页面,但它不会在任何断点处停止。

如果您有兴趣,可以从NetBeans日志中摘录:

<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug"      command="step_into" transaction_id="165" status="stopping" reason="ok"></response>
FINE [org.netbeans.modules.php.dbgp.ServerThread]
java.net.SocketTimeoutException: Accept timed out
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(Unknown Source)
        at java.net.ServerSocket.implAccept(Unknown Source)
        at java.net.ServerSocket.accept(Unknown Source)
        at org.netbeans.modules.php.dbgp.ServerThread.run(ServerThread.java:47)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[catch] at java.lang.Thread.run(Unknown Source)

此超时看起来很可疑,但我不确定是否会导致问题。

这是我的php.ini配置的摘录:

extension=php_xdebug-2.0.5-5.3-vc6.dll
xdebug.extended_info = 1
xdebug.idekey = "netbeans-xdebug"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_port = 9000

你有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我已经解决了。问题是XDebug必须通过Zend Extension Manager启用(而不是通过常规的PHP扩展),并且在XAMPP 1.7.2(我有)中没有Zend Extension Manager。我降级到XAMPP 1.7.0并且它起作用了。我还必须禁用Zend Optimizer并下载更新版本的XDebug。这是我最后的PHP配置:

[Zend]
zend_extension_ts = "\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
;zend_extension_manager.optimizer_ts = "\xampp\php\zendOptimizer\lib\Optimizer"
;zend_optimizer.enable_loader = 1
;zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:

[XDebug]
;; Only Zend OR (!) XDebug
zend_extension_ts="\xampp\php\ext\php_xdebug-2.0.5-5.2.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir="\xampp\tmp"
xdebug.idekey = "netbeans-xdebug"