【问题标题】:xdebug setup PHP debuggingxdebug 设置 PHP 调试
【发布时间】:2013-01-14 16:58:51
【问题描述】:

我有我的 x 调试一些工作 Ubuntu 11.10 我通过 apt-get 安装了 xdebug。这些是我遵循的说明: http://molecularsciences.org/articles/installing_xdebug_on_ubuntu_10.x_or_ubuntu_11.x

我在让某些事情正常工作时遇到了一些困难,并且有一些我无法解决的奇怪问题。在问之前我已经用谷歌搜索了我的小心脏。

问题一: 如果我使用 PHP 执行脚本(例如,$php index.php),脚本会一直暂停,直到我附加调试器并点击运行。我找不到任何选项来告诉 xdebug 不要暂停,除非发生断点或异常。

问题二: 无论我似乎尝试什么,我都无法从浏览器触发调试器。 cookie 正在由 Xdebug 设置,服务器上的 xdebug 变量似乎与 cookie 的值匹配。

请帮忙!我在窃听。列出要检查的事项会很有帮助。



phpInfo xdebug 设置


指令 本地价值 主价值 xdebug.auto_trace 关 关 xdebug.collect_assignments 关 关 xdebug.collect_includes On On xdebug.collect_params 0 0 xdebug.collect_return 关 关 xdebug.collect_vars 关 关 xdebug.default_enable On On xdebug.dump.COOKIE 无值 无值 xdebug.dump.ENV 无值 无值 xdebug.dump.FILES 无值 无值 xdebug.dump.GET 无值 无值 xdebug.dump.POST 无值 无值 xdebug.dump.REQUEST 无值 无值 xdebug.dump.SERVER 无值 无值 xdebug.dump.SESSION 无值 无值 xdebug.dump_globals On On xdebug.dump_once On On xdebug.dump_undefined 关 关 xdebug.extended_info On On xdebug.file_link_format 无值 无值 xdebug.idekey 根 macgdbp xdebug.manual_url http://www.php.net http://www.php.net xdebug.max_nesting_level 100 100 xdebug.overload_var_dump On On xdebug.profiler_aggregate 关 关 xdebug.profiler_append 关 关 xdebug.profiler_enable 关 关 xdebug.profiler_enable_trigger 关 关 xdebug.profiler_output_dir /tmp /tmp xdebug.profiler_output_name cachegrind.out.%p cachegrind.out.%p xdebug.remote_autostart 关 关 xdebug.remote_connect_back 关 关 xdebug.remote_cookie_expire_time 360​​0 3600 xdebug.remote_enable On On xdebug.remote_handler dbgp dbgp xdebug.remote_host 127.0.0.1 127.0.0.1 xdebug.remote_log 无值 无值 xdebug.remote_mode req req xdebug.remote_port 9000 9000 xdebug.scream 关​​ 关 xdebug.show_exception_trace 关 关 xdebug.show_local_vars 关 关 xdebug.show_mem_delta 关 关 xdebug.trace_format 0 0 xdebug.trace_options 0 0 xdebug.trace_output_dir /tmp /tmp xdebug.trace_output_name 跟踪。%c 跟踪。%c xdebug.var_display_max_children 128 128 xdebug.var_display_max_data 512 512 xdebug.var_display_max_depth 3 3

【问题讨论】:

  • 您的 IDE 与 Web 服务器在同一台计算机上吗?如果不是,您需要将此 xdebug.remote_host=127.0.0.1 更改为您的 ip。

标签: php linux ubuntu xdebug


【解决方案1】:

问题一

暂停不是由 xdebug 控制的,而是由客户端通过 dbgp 控制的

在eclipse上你可以:

来自http://devzone.zend.com/1147/debugging-php-applications-with-xdebug/

您还不会在浏览器窗口中看到输出,因为 Eclipse 通过 default 在脚本的第一行暂停脚本执行,就好像 在这一行设置了一个断点。如果你想禁用这个 行为,取消选中 Breakpoint 中的 Break at First Line 复选框 调试对话框配置窗口中的部分。

如果你使用的是netbeans,你可以

首选项 > php > 调试

并取消选中“在第一行停止”。我不知道如何在其他编辑器上执行此操作,但最终这就是编辑器行为,而不是 xdebug。

问题二: 我曾多次遇到此问题,并使用浏览器扩展程序修复了此问题。

铬: https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc

火狐: https://addons.mozilla.org/en-US/firefox/addon/easy-xdebug/?src=search

【讨论】:

  • 问题一)没有连接客户端。我正在使用 php 命令通过终端执行脚本。它暂停并等待客户端连接!问题二)我尝试了所有的 cookie 设置了正确的值我检查了 = /
  • 对于您需要设置的浏览器,否则即使触发 xdebug.remote_connect_back = on,它也不会重新连接
  • 我看到使用您的设置开始在控制台上进行分析的唯一原因是设置 XDEBUG_CONFIG 环境...
  • 这个问题比我想象的还要致命。我正在从终端运行这些 php 脚本,因为 php index.php 冻结了我必须放弃调试器或弄清楚这一点的所有内容。
  • 只是没有办法将 xdebug 设置为仅在有断点时才连接。它将尝试在启动时附加一个调试器。这个调试器将是一个说“不要在第一行停止”或“当它中断时停止”的调试器。您可以使用一个 dgbp 客户端(跳过 ide),例如 macgdbp bluestatic.org/software/macgdbp
猜你喜欢
  • 2011-08-31
  • 2020-06-20
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 2011-12-10
  • 1970-01-01
相关资源
最近更新 更多