我在Ubuntu 10.04笔记本电脑上运行PHP 5.3.2,Apache 2.2.14和xdebug 2.2.0rc1,并且试图在Netbeans 6.8的localhost上设置调试.
我的问题是我在Netbeans中设置的断点被忽略了.否则,它似乎可以正常工作.例如,我得到了漂亮的var_dumps,xdebug跟踪,xdebug远程日志,并且我也可以勾选该框,以使其在PHP脚本的第一行处中断.
根据其他网站和相关问题(例如SO1、SO2、SO3),我检查了以下所有内容:
>正在使用我正在编辑的php.ini文件
>该xdebug被加载为zend_extension = / full / path / to / xdebug.so(不是extension = xdebug.so)
>在PHP中禁用了线程安全,并且我正在使用xdebug的非线程安全版本
>断点的路径在xdebug远程日志中是正确的(请参阅此列表下方的代码片段,该片段中的路径以及未显示的其他路径都是正确的)
<- breakpoint_set -i 1014 -t line -s enabled -f file:///var/www/mockup/test.php -n 8 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1014" state="enabled" id="135610002"></response>
>手动调用xdebug_break()的工作
我也尝试过在Netbeans项目属性中设置服务器路径和项目路径,因为感觉可能是问题所在,但并没有帮助.目前我的服务器路径为/ var / www / mockup,项目路径为/ common / rsync / Dropbox / active-archives / code / Locus / mockup
但是,/ var / www / mockup无论如何都是更长路径的符号链接,所以我什至不知道这是否必要?无论是否指定路径映射都行不通…
解决方法:
Xdebug(通过PHP)尚不支持符号链接(http://bugs.xdebug.org/view.php?id=627处存在问题). PHP / Xdebug始终使用完全扩展的链接,因此您需要确保netbeans设置一个断点,例如:
breakpoint_set -i 1014 -t line -s enabled -f file:///common/rsync/Dropbox/active-archives/code/Locus/mockup/test.php
您将必须设置路径映射.在确认breakpoint_set包含正确的路径后,它应该可以工作.