Red*_*din 23 php eclipse xdebug
我花了几个小时来设置我的IDE以使用eclipse和xdebug来调试PHP.除了我在eclipse上设置的断点之外,一切都很好.如果我上线双击添加断点,调试器想不停止.如果一个添加行xdebug_break()调试器在该行停止以及...
这可能是配置问题.谁能帮助我?
的php.ini
[xdebug]
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_mode=req
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "c:/temp"
xdebug.collect_params = 4
xdebug.collect_return = on
xdebug.collect_vars = on
xdebug.show_local_vars = 1
Run Code Online (Sandbox Code Playgroud)
Nan*_*nne 13
似乎有几个问题可能是这个问题的根源.在我的情况下,我认为我需要设置一些路径映射.
找到的设置
rightclick-project->properties->PHP Debug
然后
server->edit->path mapping
是错误的.
我已经手动添加了一些我认为是正确的东西,但是Eclipse似乎可以通过自己完成这一切.删除映射使其工作.
Chr*_*iki 10
Eclipse PDT和Xdebug也有类似的问题.原因是Eclipse正在通过IPv6监听,但Xdebug尝试通过IPv4连接:
chriki@machine:~$ netstat -an | grep 9000
tcp6 0 0 :::9000 :::* LISTEN
Run Code Online (Sandbox Code Playgroud)
Xdebug 似乎还不支持IPv6.
添加行后
-Djava.net.preferIPv4Stack=true
Run Code Online (Sandbox Code Playgroud)
-vmargs在我的eclipse.ini文件中的行之后,Eclipse开始通过IPv4监听:
chriki@machine:~$ netstat -an | grep 9000
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN
Run Code Online (Sandbox Code Playgroud)
调试现在可以完美运行.
我已经解决了这个问题.
在我的php.ini上,我将xdebug添加为扩展而不是zend_extension.
php.ini中
zend_extension=C:\EasyPHP-5.3.3\php\ext\php_xdebug.dll
Run Code Online (Sandbox Code Playgroud)
注意:路径必须是完整路径而不是相对路径.
调试器工作得很好.好吃!
当我从 Xdebug 2 迁移到 3 时,出现了类似的问题。
有一个文档,但最重要的一点是:
Xdebug 的默认调试端口已从9000更改为9003。
要确保仅单步调试处于活动状态,而不是:
xdebug.remote_enable=1
xdebug.default_enable=0
xdebug.profiler_enable=0
xdebug.auto_trace=0
xdebug.coverage_enable=0
Run Code Online (Sandbox Code Playgroud)
你现在只需:
xdebug.mode=debug
Run Code Online (Sandbox Code Playgroud)
该
xdebug.remote_autostart设置已被删除。相反,设置
xdebug.start_with_request=yes
Run Code Online (Sandbox Code Playgroud)
我有同样的问题。解决方案是打开正确的文件并在其中添加断点。
我的本地服务器在我的虚拟 Z: 驱动器上(我使用的是 denwer 而不是 WAMP)。Z 驱动器指向我的 D:/webserver 文件夹。所以我可以打开我的文件 1) Z:/myproject/script.php和 2) D:/webserver/myproject/script.php
由于某些原因,调试器仅在打开的 Z:/myproject/script.php文件中的断点处停止。
如何测试我的解决方案???接下来做:
xdebug_break()到任何行并保存文件在我的情况下,在调试过程启动后,我的 phpDesigner IDE 在 IDE 中打开正确的文件并在 xdebug_break() 行停止。因此,在这个新打开的文件中,您可以添加断点,它们将起作用。使用打开的文件进行调试。