问题标签 [xdebug-3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
945 浏览

php - Docker 无法分配请求的地址

我认为我非常接近(我希望)让 xdebug 在 docker 容器中运行,旨在通过 Visual Studio Code 进行连接。

我认为也许我应该/etc/hosts在容器中的文件中添加一个配置,将 IP 地址指向我的文件正在提供的 url,但我不确定该 IP 地址应该对应于什么。

错误:

通过xdebug_info()(和/tmp/xdebug.log):

通过telnet localhost 9003

xdebug.ini文件:

launch.json: _

Dockerfile: _

最后docker-compose.yml

演出结果xdebug_info()

我打赌我需要添加一个配置,但不确定是什么。

更新

本教程中,我看到xdebug.discover_client_host=true“告诉 Xdebug 尝试从 HTTP 请求中提取客户端的 IP”,client_host如果失败则回退。(它检查变量以找出要使用的 IP 地址。)这是替换 xDebug 2 的$_SERVER['HTTP_X_FORWARDED_FOR']配置。xDebug 的大多数重要配置都在和之间发生了变化。$_SERVER['REMOTE_ADDR']remote_connect_backv2v3

但是,仍然出现相同的连接错误:

在日志中:

我尝试添加一个指向(在 Docker 容器中)的/etc/hosts条目,但还没有弄清楚如何刷新容器中的 DNS 记录。也许我需要在容器中添加额外的主机映射?192.168.16.1myproject.test

看到一篇建议Lando的帖子,它似乎包裹了 Docker,可以缓解一些这种痛苦,但我还没有准备好放弃这个,所以如果你读到这里,非常感谢你。

解决方案(感激地)在下面接受。

我还需要更改 VS Codelaunch.json文件:

因为我的仓库中没有 WP 代码库,只有一个特定的插件。使用"stopOnEntry": true时,xDebug 插件在 中寻找(不存在的)index.php文件(起点)"${workspaceRoot},而不是仅检查断点,这是我需要的,我的本地代码库只是整个应用程序的一部分。

另外,我认为# comments接受的答案中的 使文件无效,.ini因此如果您的设置似乎没有出现,请注意这一点。

0 投票
0 回答
108 浏览

php - 在 Xdebug 中调试时 __DIR__ 未正确解析

我看到DIR和 Xdebug问题的奇怪问题已得到解决,但仍然感到困惑。

使用 phpv7.3和 Xdebugv3.0.4时,我遇到了一个插件问题,该插件似乎没有在我的 Docker 开发容器中找到一些 Composer 管理的依赖项,我希望使用 Xdebug 来跟踪问题。

然而:

  • file_exists( __DIR__ . '/autoload-classmap.php')评估为假
  • 因为__DIR__ == "xdebug:"
  • 当然false == is_dir(__DIR__)

在 Xdebug functions docs中,它建议忽略特定目录:

__DIR__不是目录(评估为xdebug:)。这个过滤器应该在代码库中的哪个位置。它在哪里__DIR__仍然是一个目录?

它会以某种方式添加到IDE中的配置中吗?我正在使用 VS 代码。

0 投票
1 回答
64 浏览

php - Xdebug 3 不会在断点处停止

我设置了 Xdebug 扩展并安装了它,我可以看到它,phpinfo()但它不会在断点处停止,也不会将任何内容写入xdebug.log文件。

这是php.ini内容:

这是launch.json来自 VSCode:

0 投票
1 回答
42 浏览

xdebug - 在 /usr/local/bin/autom4te 第 262 行调用的未定义子例程 &main::open_quote

嗨,我尝试在 macox(Big Sur 11.5.2)上通过 pecl 安装 xdebug 但我收到错误消息

我更新了 perl,但它确实帮助了我(如果 open_quote 是 perl 的一部分,我无法理解)而且我在互联网上没有找到任何与 open_quote 函数问题相关的信息

我尝试从源代码安装 xdebug 并在 ./phpize 步骤中得到相同的错误

解决: 只需重新安装我运行的autoconf automake libtool brew reinstall autoconf automake libtool 之后我运行brew link --force autoconf它就解决了问题

0 投票
1 回答
227 浏览

phpstorm - PhpStorm,Xdebug 3,PHP 8.0.11,xdebug 在变量处失败?

我最近尝试从 PHP 7 切换到 PHP 8,但我遇到了 Xdebug 行为异常的问题。

基本上步进音序器似乎很好。变量视图确实显示$_COOKIE$_SERVER变量,但每当我分配一个变量时,例如$i = 0;步骤调试似乎以某种方式失败或断开连接。几秒钟后,浏览器尝试重新加载脚本并再次点击步进音序器。

有些步骤似乎有效。例如:

......结果“它有效吗?” 输出,但是如果我die();在设置之后移动$i,脚本似乎会以某种方式失败并重新启动。浏览器显示“无法访问此站点”。

我无法对任何日志等产生任何错误。知道是什么原因造成的吗?PHP 7 和旧版本的 Xdebug 上没有此类问题。

编辑:添加了 xdebug.txt 副本(单轮加载,如果页面刷新命中则开始循环)和 php.ini xdebug-section。请看这里: https ://controlc.com/b215b1f1

0 投票
1 回答
66 浏览

php - Xdebug 3.0.4 不工作

第二天,我一直在尝试将 Xdebug 连接到我的开放服务器项目,但它拒绝工作。我已经阅读了很多文章并尝试了所有不同的选项,但仍然无法达到断点。下面我将发送我拥有的所有参数,如果您能帮助我解决我的问题,我将不胜感激。

来自 php_info() 的信息: 在此处输入图像描述

VSCode 的扩展: 在此处输入图像描述

php.ini 信息:

启动.json 信息:

此外,根据一些文章的建议,我在 Firefox 中安装了 Xdebug 助手。

网络统计-abno:

0 投票
0 回答
212 浏览

php - 我想在 PhpStorm 中使用 Xdebug 分析

环境

  • Windows 10 家庭版
  • 当地的
  • PHP 7.4
  • PhpStorm 2021.2
  • Xdebug 3

问题

我想在我自己的应用程序中使用 Xdebug 进行分析。

我做了以下设置。

  1. php.ini:
  1. 我将 Xdebug helper 设置更改为 profiler

  2. 按调试按钮(在 PhpStorm 中)

结果

未创建 cachegrind 文件。

如何创建缓存研磨文件?

0 投票
2 回答
56 浏览

javascript - 让 Xdebug 忽略多个请求

我的应用程序中有几个地方每 60 秒调用一次 API 端点。

当我尝试使用 Xdebug 调试与该端点关联的控制器时,我通常需要一分钟以上的时间来思考/跳过等等,所以我最终得到了另一个 Xdebug 在同一个断点处拦截的请求(我突出显示两行,实​​际上当我再次跨步时,它将从新请求开始)。

有没有办法告诉 Xdebug 暂时忽略未来被 Xdebug 拦截的请求?当然,我可以评论我执行 setTimeout 以再次调用同一端点的 JS 部分,但我想知道是否存在不意味着修改我的代码的替代方法。

提前致谢。

0 投票
0 回答
27 浏览

php - 在 VSCode 中检查 PHP 关联数组时,某些键不显示。为什么?

我对 PHP 和 VSCode 都很陌生,并且在检查数组变量的值时对 VSCode 的行为感到惊讶。具体来说,在调试 WordPress 代码时,我看到分配给$GLOBALS['_wp_switched_stack']. 如果我将光标悬停$GLOBALS在代码中的变量上,我会看到它的键,但_wp_switched_stack没有显示。如果我进入$GLOBALS调试控制台_wp_switched_stack不显示。如果我进入$GLOBALS['_wp_switched_stack']调试控制台,我会看到这些值。

我认为这可能是因为键以下划线开头,但是有一个键显示以两个下划线开头。什么解释了这种行为?

0 投票
0 回答
16 浏览

eclipse - PHP 8 脚本在带有 Eclipse 2020-06 的 Chrome 上运行

正如我所说,我正在使用 Chrome 94、Eclipse 2020-06、Xdebug 3.0.4 和 PHP 8 进行开发。当我在 Chrome 上运行 PHP 脚本时,Eclipse 会在其内部浏览器上启动调试器,所以每当我想检查脚本时,我必须关闭 Eclipse,然后再次重新启动以进行进一步调试。我能做些什么来阻止这种情况?谢谢!