Php xdebug赢得';不要在断点处停止
我花了几个小时设置IDE,用eclipse和xdebug调试PHP。。除了我在eclipse上设置的断点之外,一切都正常。如果我双击一行添加断点,调试器希望不要停止。。如果添加一行xdebug_break(),调试器将在该行完全停止 可能是配置有问题。有人能帮我吗Php xdebug赢得';不要在断点处停止,php,eclipse,xdebug,Php,Eclipse,Xdebug,我花了几个小时设置IDE,用eclipse和xdebug调试PHP。。除了我在eclipse上设置的断点之外,一切都正常。如果我双击一行添加断点,调试器希望不要停止。。如果添加一行xdebug_break(),调试器将在该行完全停止 可能是配置有问题。有人能帮我吗 Eclipse:EclipsePDT2.2.0全包 一个Windows 32位 Xdebug:5.3 VC6 (32位) PHP:PHP版本5.3.3 PHP.ini [xdebug] xdebug.remote_enable=1
- Eclipse:EclipsePDT2.2.0全包 一个Windows 32位
- Xdebug:5.3 VC6 (32位)
- PHP:PHP版本5.3.3
[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
我已经解决了这个问题 在我的php.ini上,我添加了xdebug作为扩展,而不是zend_扩展
zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"
php.ini
zend_extension=C:\EasyPHP-5.3.3\php\ext\php_xdebug.dll
注意:路径必须是完整路径,而不是相对路径
调试器工作得很好。好吃 我也遇到了同样的问题,PDT会启动调试会话,甚至在脚本的第一行中断并允许从那里开始执行,但是如果我单击Resume,它会很高兴地运行我设置的任何手动断点。在摆弄它并阅读了大量其他回复后,我修复了它 我一直试图设置一个路径映射(在PHP服务器配置中),因为我的项目路径和web服务器路径不同,但由于某种原因,这不起作用,所以我最终在apache配置中添加了一个别名,以匹配PDT要求的位置。但是,我没有删除此路径映射设置。当我删除路径映射时,断点开始工作
可能是其他东西工作不正常(路径映射设置)的症状,但断点和调试现在都对我有效:)在移动一些本地项目文件夹后,我突然遇到了这个问题。我可以让xdebugger在文件的开头中断,但它会跳过我的其余断点
如果您使用的是Netbeans,请检查您的项目Url(项目属性->运行配置)是否指向正确的位置。当项目URL指向正确的文件夹时,断点开始按预期工作。如果xdebug没有在代码的任何部分停止,请将
xdebug_break()
添加到代码的这一部分。我也遇到了同样的问题。解决方案是打开正确的文件并在其中添加断点
我的本地服务器在我的虚拟Z:drive上(我使用的是denwer而不是WAMP)。Z驱动器指向我的D:/webserver文件夹。因此,我可以将文件打开为1)Z:/myproject/script.php和2)D:/webserver/myproject/script.php
由于某些原因,调试器仅在opennedZ:/myproject/script.php文件中的断点上停止
如何测试我的解决方案???下一步:
xdebug\u break()
添加到任意行并保存文件在我的例子中,调试进程启动phpDesigner IDE后,在IDE中打开正确的文件,并在xdebug_break()行停止。因此,在这个新打开的文件中,您可以添加断点,它们将正常工作。使用打开的文件进行调试。由于我意识到这个问题是最微不足道的,所以我有好几天(!)都遇到了同样的问题 配置:
- (Windows 7主机)
- VirtualBox机器上的Ubuntu 12.04
- 手动安装的灯
- Eclipse Indigo+PDT
- php5-xdebug
xdebug_break()处停止代码>
…这是由于默认Apache DocumentRoot文件夹的/var/www
权限造成的
我把它改为
/home/user/Documents/www
似乎有几个问题可能是这个问题的根源。在我的例子中,我认为我需要设置一些路径映射
在右键单击项目->属性->PHP调试
然后
服务器->编辑->路径映射
我们错了
我手动添加了一些我认为是正确的东西,但Eclipse似乎可以自己完成这一切。删除映射使其工作。如果使用Eclipse,则可能是为特定启动配置的调试器(请参见“调试器”选项卡)是Zend调试器,而不是XDebug。修复调试启动并重试。这为我解决了问题 不幸的是,我不能发布截图。但是,在Eclipse中,您可以转到:
调试配置>PHP Web应用程序>然后选择您的启动>调试器选项卡>使用服务器调试器下拉列表选择XDebug>点击应用按钮并重试。我遇到了相同的问题,两件事中的一件解决了它 我在PHP.ini中删除了重复的zend_扩展定义 或者更可能的情况是,我刚从这里升级到最新的xdebug版本: (我正在运行XAMPPV1.7.1附带的xdebug) 这又开始了。。。尝试了所有不同版本的xdebug DLL等。。。结果表明,导致此操作不起作用的原因是“表达式”窗口处于打开状态。。。所以当你调试东西的时候把它关闭。。。您可以临时添加手表,然后在“单步”之前关闭“表达式”窗口
伪造的 我在EclipsePDT和Xdebug中遇到了类似的问题。原因是Eclipse正在通过IPv6进行侦听,但Xdebug尝试通过IPv4进行连接:
chriki@machine:~$ netstat -an | grep 9000
tcp6 0 0 :::9000 :::* LISTEN
chriki@machine:~$ netstat -an | grep 9000
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN
Xdebug,还没有
添加行之后
-Djava.net.preferIPv4Stack=true
在我的eclipse.ini
文件中的-vmargs
行之后,eclipse开始通过IPv4侦听:
chriki@machine:~$ netstat -an | grep 9000
tcp6 0 0 :::9000 :::* LISTEN
chriki@machine:~$ netstat -an | grep 9000
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN
调试现在可以完美地工作。1-检查php.ini上的xdebug配置
2-eclipse->project->properties->phpDebug-> 启用特定于项目的设置 phpDebugger->配置->端口 或 Widnow->preference->php->debug->installedDebuggers 3-widnow->首选项->php-> 解释器->版本 可执行文件->指向php-win.exe的路径
要点:对于每个调试库(xdebug、zend_debugger等),您可以有一个默认的ph值
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip [ WINDOWS IP TO ALLOW GOES HERE ]
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from [ WINDOWS IP TO ALLOW GOES HERE ]
Allow from ::1
</IfModule>
zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"
[XDebug]
zend_extension = C:\xampp\php\ext\php_xdebug-2.6.0-7.0-vc14.dll
;zend_extension = C:\xampp\php\ext\php_xdebug-2.5.5-7.0-vc14.dll
;zend_extension = "c:\xampp\php\ext\php_xdebug-2.6.0-7.2-vc15.dll"
xdebug.remote_autostart = 1
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "c:\xampp\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_log = "c:\xampp\tmp\xdebug.txt"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "c:\xampp\tmp"
;36000 = 10h
xdebug.remote_cookie_expire_time = 36000
xdebug.remote_enable=1
xdebug.default_enable=0
xdebug.profiler_enable=0
xdebug.auto_trace=0
xdebug.coverage_enable=0
xdebug.mode=debug
xdebug.start_with_request=yes