标签: xdebug-3

在 CLI 中禁用 Xdebug 3“无法连接”消息

在 CLI 中使用 Xdebug 3 时,它会在没有设置断点时不断报告消息:

"Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-("
Run Code Online (Sandbox Code Playgroud)

有没有办法禁用在 CLI 中显示的消息表单?

php xdebug xdebug-3

15
推荐指数
3
解决办法
3942
查看次数

Xdebug: [Step Debug] 无法连接到调试客户端。试过: localhost:9003(通过 xdebug.client_host/xdebug.client_port 回退):-(

xdebug ang php 的此消息的解决方法是什么?

Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (fallback through xdebug.client_host/xdebug.client_port) :-(
Run Code Online (Sandbox Code Playgroud)

当我composer updateWSL2安装时运行时显示此消息UBUNTU 20.01

我当前的 php 版本是 php8xdebug3

更新:

这是 x-debug 部分

xdebug

__   __   _      _
\ \ / /  | |    | |
 \ V / __| | ___| |__  _   _  __ _
  > < / _` |/ _ \ '_ \| | | |/ _` |
 / . \ (_| …
Run Code Online (Sandbox Code Playgroud)

php wsl-2 ubuntu-20.04 xdebug-3

14
推荐指数
1
解决办法
7779
查看次数

xdebug.start_start_with_request=yes 如果调试客户端未侦听,则不会出现错误

我曾经对 Xdebug 2 有以下配置:

xdebug.default_enable=1

当没有调试客户端正在侦听时,Xdebug 不会减慢执行速度,但是当我需要调试某些内容时,我只需在 PhpStorm 中启用侦听并刷新页面即可。为此不需要浏览器扩展。这同样适用于调试 CLI 应用程序,它确实有效。

我尝试使用 Xdebug 3 实现相同的效果,配置如下:

xdebug.mode=debug
xdebug.start_start_with_request=yes
Run Code Online (Sandbox Code Playgroud)

它的工作原理相同,但每次当我在 PhpStorm 中禁用调试侦听并运行 CLI 命令时,我都会收到以下错误严重程度的消息:

Xdebug: [Step Debug] Could not connect to debugging client. Tried: 172.17.0.1:9003 (through xdebug.client_host/xdebug.client_port) :-(
Run Code Online (Sandbox Code Playgroud)

这是我可以忍受的,但它也会使 PHPUnit 测试失败beStrictAboutOutputDuringTests="true"

如果我使用过,升级指南建议使用,但这不是有效的替代品。xdebug.module=developxdebug.default_enable=1

完全沉默所有 Xdebug 日志,甚至禁用评论建议的 PHP 中的错误报告对我来说似乎是一种肮脏的黑客行为,可能存在缺陷,而不是有效的解决方案。

如果没有此消息,我如何才能保持预期的行为?

phpunit xdebug xdebug-3

9
推荐指数
2
解决办法
9819
查看次数

带有 Xdebug 3 env XDEBUG_MODE 的 Docker PHP 不起作用

我正在尝试Xdebug 3在 PHP 容器中进行配置 ,并 根据文档 https://xdebug.org/docs/all_settings#mode设置 XDEBUG_MODEenv 变量,但 显示. 怎么修?offxdebug_info()mode=develop

Dockerfile:

FROM php:7.4.11-fpm
…
ENV XDEBUG_MODE=off
ENV XDEBUG_CONFIG=""
RUN pecl install xdebug \
    && docker-php-ext-enable xdebug \
...
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml:

services:
  php:
    build:
      dockerfile: ${PWD}/.devcontainer/Dockerfile
    image: php-fpm
    environment:
      XDEBUG_MODE: ${XDEBUG_MODE} // off
      XDEBUG_CONFIG: ${XDEBUG_CONFIG}
Run Code Online (Sandbox Code Playgroud)

xdebug信息:

php -r 'xdebug_info();'
Version => 3.0.0
Support Xdebug on Patreon, GitHub, or as a business: https://xdebug.org/support
Feature => Enabled/Disabled
Development Aids => ? disabled
Coverage => ? disabled …
Run Code Online (Sandbox Code Playgroud)

php xdebug docker xdebug-3

7
推荐指数
1
解决办法
6489
查看次数

Xdebug V3 不会停止 VSCode 中的断点

我正在尝试使用 VSCode 在我的 XAMPP 上进行调试,但没有成功。我知道有很多关于这个的问题,我已经尽我所能,但仍然无法奏效。

关于我的 xdebug 扩展,你真的有一件很奇怪的事情。我目前使用的是 PHP v7.4.12 和 Xdebug 版本 3。

我知道我的 Xdebug 可以在 PHP 上运行,因为我查看了phpinfo()它并显示了我如何设置它。怪异的一部分是许多教程那里通常之中zend_extension = path..xdebug.remote_enable = 1并且xdebug.remote_autostart = 1应该足够,但是当我的phpinfo它看作是如下所示:

在此处输入图片说明

我试图用设置xdebug.remote_port = 9000xdebug.remote_host = "localhost",但仍然无法工作。我什至读过有关将 localhost 更改为的内容,127.0.0.1但仍然无效。

任何帮助,将不胜感激。这是我的 launch.json 文件和 php ini 文件。

配置文件

zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_log = "C:\xampp\tmp\xdebug\xdebug.log"
xdebug.remote_port = 9000
xdebug.remote_host = "127.0.0.1"
xdebug.idekey=VSCODE
Run Code Online (Sandbox Code Playgroud)

启动文件

{
    // Use IntelliSense to learn about …
Run Code Online (Sandbox Code Playgroud)

php xampp xdebug visual-studio-code xdebug-3

7
推荐指数
2
解决办法
4290
查看次数

如何将 xdebug 添加到 php:8.1-fpm-alpine Docker 容器?

我的 phpunit 容器有这个 dockerfile:

FROM php:8.1-fpm-alpine

WORKDIR /var/www/html

RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

ENV PHP_MEMORY_LIMIT=1G
ENV PHP_UPLOAD_MAX_FILESIZE: 512M
ENV PHP_POST_MAX_SIZE: 512M

RUN docker-php-ext-install pdo

RUN apk add --no-cache libpng libpng-dev && docker-php-ext-install gd && apk del libpng-dev

RUN apk update \
    && apk upgrade \
    && apk add --no-cache \
        freetype \
        libpng \
        libjpeg-turbo \
        freetype-dev \
        libpng-dev \
        jpeg-dev \
        libwebp-dev \
        libjpeg \
        libjpeg-turbo-dev

RUN docker-php-ext-configure gd \
        --with-freetype=/usr/lib/ \ …
Run Code Online (Sandbox Code Playgroud)

phpunit xdebug docker docker-compose xdebug-3

7
推荐指数
2
解决办法
1万
查看次数

Xdebug 3 &amp; PhpStorm 2020.2.4

将 Xdebug 版本3与 PhpStorm 版本2020.2.4一起使用时出现此错误:

Connection was not established. 
Cannot start debugger session with 'Xdebug 3.0.0' Validate installation
Run Code Online (Sandbox Code Playgroud)

php.ini 配置:

Connection was not established. 
Cannot start debugger session with 'Xdebug 3.0.0' Validate installation
Run Code Online (Sandbox Code Playgroud)

php xampp xdebug phpstorm xdebug-3

6
推荐指数
1
解决办法
3563
查看次数

Xdebug 无法跨过或进入 - 使用 VSCode 和 Windows

希望以下内容足以让您继续下去。

我的设置

我在用着:

  • Windows 10(现在版本 19043.1288),
  • VSCode (v1.61.2) 与
  • PHP 调试(v1.21.1),
  • Firefox 和 Google Chrome 浏览器,
  • XAMPP(v3.3.0)
  • Xdebug(现在 v3.1.1-7.4x86_64)
  • 我还在后台运行 Ubiquiti 网络控制器和 BitDefender AV。

PHP.ini

[Xdebug]
zend_extension = xdebug
;zend_extension = "c:\xampp\php\ext\php_xdebug-3.1.1-7.4-vc15-x86_64.dll"

xdebug.remote_enable=1
xdebug.remote_autostart=1

xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_port = 9000
xdebug.log = "c:\xampp\htdocs\j4\tmp\xdebug.log"
Run Code Online (Sandbox Code Playgroud)

问题

我已经使用 VSCode/XAMPP/Xdebug 与 Joomla 3 一起工作了一年多,没有出现任何问题。我离开了几周,当我回来时,我无法单步进入任何 Joomla 3 模块/类。VSCode 会在断点处停止,但单步执行和单步执行都会立即转到父调用函数。

啊,我对自己说,可能 Windows 做了一些事情 - 可能是升级到 J4 以及更新我的环境的好时机。同样的问题。在第一个断点处停止,不会单步执行或单步执行 - 它不会在后续断点处停止。似乎是核心 J4 模块中的单步。堆栈显示正常 - 可以检查初始化的变量。

我尝试过的

一切!为了保持相关性 - 我现在安装了一个全新的、开箱即用的、纯正的 XAMPP、Joomla4 和 Xdebug(按照 Xdebug 向导的建议)。我还暂时禁用了我的 AV …

php joomla xdebug vscode-debugger xdebug-3

5
推荐指数
0
解决办法
586
查看次数

XDebug 无法从 docker 容器连接到客户端

我有几个 docker 容器:php、nginx、mariadb、redis、adminer,并尝试使用 PhpStorm 和 Xdebug 调试一些 PHP 代码。

主机(联想T490笔记本电脑):

$ hostname
T490


$ docker -v
Docker version 20.10.5, build 55c4c88


$ docker-compose -v
docker-compose version 1.24.1, build 4667896b


$ cat /etc/lsb-release 
DISTRIB_ID=neon
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="KDE neon User Edition 5.21"


$ php -v
PHP 7.4.16 (cli) (built: Mar  5 2021 07:54:20) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.16, Copyright (c), by Zend Technologies


$ lsof -i :9003 …
Run Code Online (Sandbox Code Playgroud)

phpstorm docker docker-compose php-7.4 xdebug-3

4
推荐指数
1
解决办法
8309
查看次数

Mac M1 Silicon 上的 Apache 将不会加载 xdebug.so - “代码签名对于在进程中使用无效”

我正在设置一台新的 MacBook(Monterey 12.2.1 芯片 Apple M1 Pro),并使用自制程序安装了 PHP 7.4。我将 PHP 配置为作为 MacOS (Apache/2.4.51) 附带的 Apache2 服务器的模块运行。我立即遇到了麻烦,因为在我对其进行代码签名之前,Gatekeeper 不允许我将 php 作为自制程序中的 apache 模块运行。我对它进行了协同设计:

codesign --sign "Mike Andersen" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so

之后 PHP 就完美运行了。然后我用 PECL 安装了 xdebug: arch -x86_64 sudo pecl install xdebug

当我从命令行检查它时,一切看起来都正确:

php -v
PHP 7.4.28 (cli) (built: Feb 28 2022 07:33:39) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.28, Copyright (c), by Zend Technologies
    with Xdebug v3.1.3, Copyright …
Run Code Online (Sandbox Code Playgroud)

php code-signing apache2.4 xdebug-3 macos-monterey

3
推荐指数
1
解决办法
1816
查看次数

Xdebug 3 配置文件

我需要有关调试 Xdebug 3 配置的工作步骤的帮助。我在 Ubuntu 服务器 20.04 上使用 nginx 运行 Xdebug 3.0.1,安装在 Oracle VirtualBox 上。我的 IDE 是 PhpStorm。

一切正常(SSH 隧道、SFTP、端口转发),连接已建立,但未开始分步调试。

我当前的 Xdebug 3 配置:

zend_extension=xdebug.so
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
XDEBUG_SESSION=PHPSTORM
xdebug.start_with_request=yes
Run Code Online (Sandbox Code Playgroud)

任何人都在工作步骤调试配置中配置了 Xdebug 3 并且可以帮助我?

从浏览器捕获的 phpinfo() Xdebug 部分 - 非常长

xdebug 版本 3.0.1

Feature Enabled/Disabled    Docs
Development Aids    ? disabled  
Coverage    ? disabled  
GC Stats    ? disabled  
Profiler    ? disabled  
Step Debugger   ? enabled   
Tracing ? disabled  
Debugger    enabled
IDE Key no value
Directive …
Run Code Online (Sandbox Code Playgroud)

php xdebug virtual-machine phpstorm xdebug-3

2
推荐指数
1
解决办法
4996
查看次数

未建立连接。可能“xdebug.remote_host=host.docker.internal”不正确。更改“xdebug.remote_host”

我正在尝试通过 PhpStorm (v2022.3.2) 使用 Xdebug (v3) 从 Docker 容器内部调试 PHPUnit 测试方法。

Xdebug 已正确设置,PhpStorm 中的服务器也是如此。

事实上,如果我从命令行运行测试,Xdebug 将在断点处停止:

XDEBUG_SESSION=1 PHP_IDE_CONFIG="serverName=myapp.localhost" vendor/bin/phpunit --testdox --filter testProfileUpdate
Run Code Online (Sandbox Code Playgroud)

如果我单击测试方法左侧的“bug”图标来调试测试,则会收到以下错误:

未建立连接。可能“xdebug.remote_host=host.docker.internal”不正确。更改“xdebug.remote_host”。

查看PhpStorm 执行的调试测试方法的命令,我看到的是:

[docker://myapp:latest/]:php -dxdebug.mode=debug -dxdebug.client_port=9000 -dxdebug.client_host=host.docker.internal /opt/project/vendor/phpunit/phpunit/phpunit --configuration /opt/project/phpunit.xml --filter "/(ProfileTest::testProfileUpdate)( .*)?$/" --test-suffix ProfileTest.php /opt/project/tests --teamcity
Run Code Online (Sandbox Code Playgroud)

尝试配置另外两个标志

我还尝试配置另外两个标志

  • -dxdebug.idekey="serverName=myapp.localhost"
  • -dxdebug.session=1

结果命令是这样的:

[docker://myapp:latest/]:php -dxdebug.mode=debug -dxdebug.client_port=9000 -dxdebug.client_host=host.docker.internal -dxdebug.idekey="serverName=myapp.localhost" -dxdebug.session=1 /opt/project/vendor/phpunit/phpunit/phpunit --configuration /opt/project/phpunit.xml --filter "/(ProfileTest::testProfileUpdate)( .*)?$/" --test-suffix ProfileTest.php /opt/project/tests --teamcity
Run Code Online (Sandbox Code Playgroud)

同样使用此配置,Xdebug 不会启动并且断点将被忽略(并且会弹出错误消息)。

尝试禁用 PhpStorm 传递的参数

我尝试禁用 PhpStorm 自动传递的参数,转到“设置”>“PHP”>“调试”。

然后,在“高级设置”部分中,我取消标记了“通过命令行传递所需的配置选项”选项。

现在,生成的命令是这样的:

[docker://myapp:latest/]:php /opt/project/vendor/phpunit/phpunit/phpunit --configuration /opt/project/phpunit.xml --filter …
Run Code Online (Sandbox Code Playgroud)

phpunit xdebug phpstorm docker xdebug-3

1
推荐指数
1
解决办法
1241
查看次数

无法在 PHP 8.0 中加载 xdebug

在使用 PHP 8.0.2 的 Windows 10 中,尝试加载 3 个不同版本的 xdebug 均失败,Failed loading Zend extension 'php_xdebug-...尝试的版本如下:

php_xdebug-2.9.8-7.3-vc15-x86_64.dll
php_xdebug-3.0.3-8.0-vs16-x86_64.dll
php_xdebug-3.1.1-8.0-vs16-x86_64.dll
Run Code Online (Sandbox Code Playgroud)

文件名是否被引用都没有区别,包含路径也没有区别C:\\...区别C:/...

我缺少什么?

apache error.log 中的示例错误消息:

PHP Warning: Failed loading Zend extension 'php_xdebug-2.9.8-7.3-vc15-x86_64.dll' (tried: C:\\php\\ext\\php_xdebug-2.9.8-7.3-vc15-x86_64.dll (The specified module could not be found), C:\\php\\ext\\php_php_xdebug-2.9.8-7.3-vc15-x86_64.dll.dll (The specified module could not be found)) in Unknown on line 0

php.ini/xdebug:

[xdebug]
zend_extension="php_xdebug-2.9.8-7.3-vc15-x86_64.dll"
xdebug.mode=debug
xdebug.client_host=localhost
xdebug.client_port=9003
xdebug.idekey="netbeans-xdebug"
Run Code Online (Sandbox Code Playgroud)

阿帕奇是Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/8.0.2

Windows 是Windows NT GWB-10 10.0 build 19042 (Windows 10) AMD64 …

php xdebug xdebug-3

0
推荐指数
1
解决办法
7916
查看次数