0

有没有人能够设置 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

你有什么建议吗?

4

1 回答 1

2

我已经解决了。问题是必须通过 Zend Extension Manager(而不是通过常规 PHP 扩展)启用 XDebug,并且 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"
于 2010-02-13T22:16:51.133 回答