我使用NetBeans6.7和XDebug在我的机器上调试一个PHP站点,从Netbeans内部启动请求(Project-> debug )。这很好,而且非常有用。
我的问题是:是否可以将调试器附加到任何传入的请求,而仅仅是我从Netbeans内部启动的请求?
ie,而不是点击“调试”,将Netbeans置于启动调试器并附加到下一个请求的模式中。
我觉得这可能是个愚蠢的问题,但如果可能的话,那就太好了。
编辑:更多信息
我的系统(Ubuntu9.04)设置如下:
/etc/php5/conf.d/xdebug.ini含量
zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebugNetbeans PHP调试选项位于默认值:
Debugger Port: 9000
Session ID: netbeans-xdebug
Stop at the First Line: ticked我的/etc/hosts文件将www.mywebsite.com重定向到localhost
如果我单击Netbeans中的调试按钮,则使用address http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug启动Firefox,调试器将按预期工作。
但是,如果我只浏览到http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug,就不会启动Netbeans中的调试器。
我也尝试过设置xdebug.remote_host=www.mywebsite.com,但这并没有什么区别。
此外,我还启用了xdebug.remote_log,这显示了当我从netbeans内部启动时的信息,但对于外部请求则没有。因此,我认为XDebug根本没有看到外部请求。
发布于 2009-10-09 16:15:09
转到“项目属性”>“运行配置”>“高级”>“调试url”并检查“不打开web浏览器(*)”。不要在调试器代理下设置主机。保存这些设置。在项目窗口中,在项目上:右键单击> debug (这将开始侦听调试连接)。没有启动浏览器。在浏览器中输入http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug。它应该会侵入netbeans。至少这里发生了这样的事情:)
(*)您还可能需要设置路径映射--对我来说,它在没有
发布于 2010-05-17 16:31:14
默认情况下,当未指定“XDEBUG_SESSION_START”Cookie/URL参数时,xdebug将不会尝试连接到远程主机。通过将xdebug.remote_autostart设置为php.ini中的1,可以使xdebug成为“始终打开”。
此外,您必须在NetBeans中启动PHP调试器才能正常工作。我还没有找到更好的解决方案,但是您可以让PHP调试器侦听传入的连接,方法是开始调试随机文件(使用CTRL+SHIFT+F5开始调试文件),然后在断点停止时继续(通过按F5)。Netbeans调试器应该运行,直到您真正停止它。
更新:由于NetBeans检查会话id (XDEBUG_SESSION_START),您也必须设置idekey变量。例:
xdebug.remote_autostart = 1
xdebug.idekey = "netbeans-xdebug"发布于 2014-07-18 09:56:42
我在升级PHP和编译/安装xdebug之后也遇到了类似的问题(在NetBeans、Mac上)。phpinfo显示xdebug已加载,但它仍然无法连接,在尝试之后,上面列出的所有内容仍然没有成功。然后,我尝试将----将文件中设置的参数数降回最低要求的值。这似乎为我解决了这个问题。
; REMOVED (commented) the following
; xdebug.remote_log=/myfile.log
;xdebug.extended_info = off
;xdebug.auto_trace=1
;xdebug.trace_output_dir=/mydir/myphptracefile.txt
;xdebug.trace_output_name=php_trace.%c
;xdebug.collect_params=4我还将默认的xdebug.idekey从netbeans-xdebug重命名为default,然后再次返回。
重新启动Apache之后,xdebug又开始工作了:我不确定到底是什么修复了它,但是一个好的起点可能是从php.ini文件中的最小数量的xdebug设置开始,然后在需要的时候慢慢地添加更多。我怀疑这可能与跟踪设置有关,但不能确定。
我最后使用的基本设置是:
xdebug.remote_enable=on
xdebug.remote_port=9000
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.idekey=netbeans-xdebug编译调试器客户端(在xdebug源代码包中)并检查命令行上的调试也是一个好主意,因为这将告诉您至少可以独立于您的IDE运行。
https://stackoverflow.com/questions/1531391
复制相似问题