已经尝试了一段时间才能让它正常工作但没有运气。基本上,我有Eclipse(3.3)与PHP开发工具(PDT),PDT XDebug插件以及SimpleTest eclipse插件。
我想要做的是调试SimpleTest单元测试调用的代码。 SimpleTest显然可以看到XDebug,因为我可以生成代码覆盖率报告,但它不会在断点上停止。
编辑:应该添加XDebug和断点在eclipse中正常工作,而不是在SimpleTest调用时
有没有人成功设置过这个?有很多guff文档,很少有用的信息。
谢谢!
答案 0 :(得分:3)
确保您的PHP版本具有正确的XDebug版本,并在php.ini文件的最开头添加:
[xdebug]
zend_extension=full_path_to_your_xdebug.so
xdebug.default_enable=On
xdebug.remote_enable=On
xdebug.remote_handler="dbgp"
xdebug.remote_host="localhost"
xdebug.remote_port=9000
然后执行apachectl graceful
和phpinfo
并确保XDebug存在并处于活动状态。如果是的话,一切都应该正常。我知道这对我有用。
编辑我在阅读整个问题之前回答。
在运行脚本之前,您应该设置环境变量;
export XDEBUG_CONFIG="idekey=session_name"
有可能从php做到这一点,但我无法测试这个:
putenv('XDEBUG_CONFIG="idekey=session_name"');
你应该确保你正在使用的php二进制文件加载了XDebug扩展,在我的系统上apache模块有它,但默认的CLI解释器没有,但是我故意运行不同的版本。
这里有一些good documentation
答案 1 :(得分:1)
要进一步了解Kris的回答,如果您在同一台服务器上管理生产和开发环境,最好将xdebug设置转移到php include
或virtualhosts
的设置。 }专用于dev
或testing
环境:
虚拟主机的语法是
<virtualHost ....>
(...)
# Xdebug ENV
php_flag xdebug.auto_trace on
php_flag xdebug.idekey session_name
php_flag xdebug.profiler_enable_trigger 1
php_flag xdebug.(...)
(...)