我正在尝试在Windows 7上调试NetBeans中的本地Wordpress实例(在xampp上)。出于某种原因,忽略了生活在Web服务器根目录中的任何文件之外的断点。
我用Google搜索了好几年,但没有用。我看过SO1,SO2,SO3,SO4,SO5和SO6,但也无济于事。所有这些SO都提到路径映射。我已经映射了我的所有文件夹,但由于我的项目文件夹与我的项目文件夹相同,因此这些映射完全相同。此外,xdebug日志中的路径指向正确的文件(见下文)。
调用xdebug_break();
仅在生活在网络服务器根目录中的一个文件(在我的情况下为`wp-develop')中调用时才有效,所以我怀疑我没有正确映射路径。
我的php.ini文件中与xdebug相关的部分如下所示:
[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\xampp\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = On
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_port=9000
xdebug.trace_output_dir = "C:\xampp\tmp"
xdebug.var_display_max_depth = -1
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1
xdebug.remote_log = "C:\xdebugremotelog.txt"
xdebug日志的输出如下所示:
<- breakpoint_set -i 122 -t line -s enabled -f file:///c:/xampp/htdocs/wp-develop/wp-content/themes/gap/gap.php -n 32
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="122" state="enabled" id="81240001"></response>
c:/xampp/htdocs/wp-develop/wp-content/themes/gap/gap.php
是正确的道路。
我在这里缺少什么?任何帮助将不胜感激。
事实上,我认为我可能在路径映射中做错了。有人能给我一个他们应该如何看待的例子吗?
答案 0 :(得分:1)
我在Windows系统上遇到过类似的问题:Eclipse断点适用于任何php命令行项目,不适用于任何Web应用程序。 我花了两个小时来解决问题。
请检查您的网络服务器是否正在侦听127.0.0.1地址而不是&#34; localhost&#34;。 为什么?因为从Vista开始,Windows使用ipv4连接到127.0.0.1,而它使用ipv6连接到&#34; localhost&#34;地址。
因此,解决方案是在所有调试堆栈上使用ipv4:
启动php内置网络服务器(任何或其他)以收听127.0.0.1
我希望这会对你有所帮助
来自意大利的问候