Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse和NetBeans PHP Xdebug会话从未完成_Php_Eclipse_Netbeans_Xdebug - Fatal编程技术网

Eclipse和NetBeans PHP Xdebug会话从未完成

Eclipse和NetBeans PHP Xdebug会话从未完成,php,eclipse,netbeans,xdebug,Php,Eclipse,Netbeans,Xdebug,我在PHP7.1中使用UniServer Zero XIII。从phpinfo.php文件中,我可以看到xdebug已启用: 当我尝试调试源代码并在NetBeans上使用断点时,XDebug会话从未完成: 当我从web浏览器查看web应用程序的执行时,它会不断尝试加载页面,但从未完成 我在Eclipse上也有同样的经历: 我试图理解为什么Xdebug会话永远不会完成,以及我需要做些什么来修复它。谢谢。我想可能找到了解决方案,问题是您删除了元数据: 当一个项目(包括源根)被删除或移动到Net

我在PHP7.1中使用UniServer Zero XIII。从phpinfo.php文件中,我可以看到xdebug已启用:

当我尝试调试源代码并在NetBeans上使用断点时,XDebug会话从未完成:

当我从web浏览器查看web应用程序的执行时,它会不断尝试加载页面,但从未完成

我在Eclipse上也有同样的经历:


我试图理解为什么Xdebug会话永远不会完成,以及我需要做些什么来修复它。谢谢。

我想可能找到了解决方案,问题是您删除了元数据:

当一个项目(包括源根)被删除或移动到NetBeans之外并且NetBeans关闭时,在NetBeans再次启动后,属于不再存在的源的行断点将被删除

因此,IMHO,在您的例子中,要么抛出了一些异常,中断了断点的消除,这些异常将出现在messages.log文件中,要么您只删除了项目元数据,而没有删除源

这是我唯一能复制你的问题的案例:

1) 创建一个Servlet2Stateless示例项目(或者任何Java项目都可以) 这边走(伊姆霍)

2) 右键单击“项目中的项目”窗口并选择“复制…”

3) 按复印按钮

4) 从复制的项目中打开Servlet2Stateless.java文件 (Servlet2Stateless_1)

5) 将断点提交到第72行

6) 在服务器上挂起Servlet2Stateless_1项目后,调试该项目 断点,按continue并完成调试器会话

7) 删除您的proyect_1项目,但请确保不要签入 “同时删除以下项下的源…”

8) 调试原始项目

9) 您会收到一条错误消息 “无法提交断点行断点Servlet2Stateless.java:72, 原因:找不到URL的源根目录 '文件:/tmp/NetBeansProjects/ServletStateless_1/src/java/servlet/stateless/ Servlet2Stateless.java'。验证项目源的设置

10) 这个信息是无害的,但如果你想摆脱它,它很容易 要单击“无效的LineBreakpoint Servlet2Stateless.java:72”行, 这将打开源文件并删除断点

因为在这个问题上没有什么严重的问题,我把优先级降低到P3。 我们可以考虑通过忽略属于没有相应项目的源根的断点,并且不在“源”窗口中添加为额外的源根来修复此问题


检查全部信息

我没有时间找到这个问题的解决方案。不幸的是,我只收到了这个问题的一个答案,它并没有解决我的问题。我必须为Zend Studio 13.6购买Zend Studio永久许可证,现在我可以使用断点,使用Zend Debugger(XDebug的竞争对手)调试代码,并且一切正常

我尽我所能修复在NetBeans和Eclipse上使用XDebug时遇到的问题,但是时间不够了,我需要继续前进。我不得不为我的Zend Studio永久许可证支付89美元,其中包括一年的免费升级。我想通过使用Eclipse或NetBeans来省钱,但这个XDebug问题迫使我从开源转向专有解决方案

2017年8月29日编辑:

我终于让XDebug在Zend Studio上工作了。我无法在UniServer Zero XIII上快速配置Zend Debugger,因此我对以下文件进行了如下修改:C:[我的路径]\UniformServer13_3_2_ZeroXIII\UniServerZ\core\php71\php_production.ini:

[xdebug]
#zend_extension=${US_ROOTF}/core/php71/extensions/php_xdebug.dll
zend_extension="C:\[my path]\UniformServer13_3_2_ZeroXIII\UniServerZ\core\php71\extensions\php_xdebug.dll"
xdebug.remote_autostart=on
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
#xdebug.remote_port=9000
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.idekey=default

我将端口从9000更改为9001,并使用带有双引号的zend_扩展的绝对路径来指定php_xdebug.dll扩展的位置。我不确定这最后一步是否有什么不同,或者只是将端口从9000更改为9001,然后重新启动Apache。但至少现在我可以配置断点来停止程序,并查看要计算的变量值。

您是否重新设置了.metadata文件夹?是的,我转到了C:\Users[username]\workspace\.metadata并删除了整个.metadata文件夹。问题仍然完全相同,因此删除.metadata文件夹不是我的解决方案。在删除.metadata文件夹之前,我遇到了此问题,因此我认为这与删除.metadata文件夹的操作无关。我认为这不是问题的原因,也不是解决办法,但我可能错了。我想是别的原因吧。