标签: xdebug

更简单的方法来添加XDEBUG_SESSION_START cookie /变量?

我用vimdebuggerxdebug走线槽PHP应用程序.

在firefox(或任何其他浏览器)中,我需要打开页面,调用XDEBUG_SESSION_START=1附加到它的URL,以告诉xdebugPHP插件启动调试服务器.

这工作正常,但它可以变得更简单吗?

是否有一些firefox插件允许我自动添加此会话?一些xdebug设置允许我完全绕过这个?或者一些vim-addon,脚本或技巧,允许我自动添加该参数调用firefox?

php vim xdebug

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

Xdebug 使 PHP 速度太慢

我知道 Xdebug 会使 PHP 变慢,但在我的 Ubuntu 16 PC 上,只有在 PhpStorm 中启用 Xdebug 时,它才会使 PHP 变慢,在其他情况下速度很好。

但是现在我正在尝试使用 Docker 在 MacOS 上安装开发环境。

简而言之:我找到了一个基准脚本。当我在安装并启用 Xdebug 的情况下检查 PHP 速度时,执行它大约需要 28-32 秒。如果我在没有安装和配置 Xdebug 的情况下构建容器,脚本执行时间约为 0.8-1.1 秒,快 30 倍以上!

我是否有可能配置错误并且服务器一直发送“Xdebug 响应”?

不确定它实际上是如何工作的,但我确信它不应该是那样的。

我正在使用 Docker、Ubuntu 16.04 容器、PHP 7.2、Xdebug v2.9.1、Apache。

这是我的 Xdebug 设置:

zend_extension = "/usr/lib/php/20190902/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_port=9003
xdebug.remote_host=host.docker.internal
xdebug.idekey=PHP_STORM
xdebug.remote_connect_back=off
xdebug.profiler_enable = 0
xdebug.remote_autostart = 0
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = req
Run Code Online (Sandbox Code Playgroud)

还有一件事。 当所有指南都说我应该使用“添加配置”选项并添加 Xdebug 服务时,我可以使用此Xdebug 侦听图标开始调试。

如果我做错了什么,你能告诉我吗?

Xdebug 监听

php apache xdebug docker

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

Xdebug 3 - 设置“xdebug.remote_***”已重命名,请参阅升级指南

我刚刚在我的 OSX 上安装了 Xdebug v3.0.0beta1 并尝试在 PhpStorm 2020.1 上使用它,但我得到了这个:

Xdebug: [Config] 设置 'xdebug.remote_enable' 已重命名,请参阅https://xdebug.org/docs/upgrade_guide#changed-xdebug.remote_enable 上的升级指南 (请参阅:https : //xdebug.org/docs /errors#CFG-C-CHANGED ) Xdebug: [Config] 设置 'xdebug.remote_host' 已重命名,请参阅https://xdebug.org/docs/upgrade_guide#changed-xdebug.remote_host 上的升级指南 (请参阅: https://xdebug.org/docs/errors#CFG-C-CHANGED ) Xdebug: [Config] 设置“xdebug.remote_mode”已重命名,请参阅https://xdebug.org/docs/upgrade_guide 上的升级指南#changed-xdebug.remote_mode (参见:https : //xdebug.org/docs/errors#CFG-C-CHANGED) Xdebug: [Config] 设置 'xdebug.remote_port' 已重命名,请参阅https://xdebug.org/docs/upgrade_guide#changed-xdebug.remote_port 上的升级指南

提供的链接只会导致带有错误的图像。

我的问题是要设置的正确设置是什么以及在哪里实际更改它们,因为我的 php.ini 文件中没有关于 xdebug 的任何内容。

php xdebug phpstorm

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

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
查看次数

PHP 致命错误:未捕获错误:使用 Laravel 5.8 和 PHP 7.4 调用未定义的函数 Whoops\Exception\xdebug_is_enabled()

希望你做得很好,我正在做一个 Laravel 项目,几个月以来我一直没有工作,发现任何时候出现异常,我都会收到以下错误:

[2021 年 1 月 15 日星期五 15:51:11] PHP 致命错误:未捕获错误:调用 /var/www/html/project/vendor/filp/whoops/src/Whoops/Exception 中未定义的函数 Whoops\Exception\xdebug_is_enabled() /Inspector.php:254

堆栈跟踪:

#0 /var/www/html/project/vendor/filp/whoops/src/Whoops/Exception/Inspector.php(175): Whoops\Exception\Inspector->getTrace()
#1 /var/www/html/project/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php(280): Whoops\Exception\Inspector->getFrames()
#2 /var/www/html/project/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php(197): Whoops\Handler\PrettyPageHandler->getExceptionFrames()
#3 /var/www/html/project/vendor/filp/whoops/src/Whoops/Run.php(296): Whoops\Handler\PrettyPageHandler->handle()
#4 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(345): Whoops\Run->handleException()
#5 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(324): Illuminate\Foundation\Exceptions\Handler->renderExceptionWithWhoops()
#6 /var/www/html/project/ in /var/www/html/project/vendor/filp/whoops/src/Whoops/Exception/Inspector.php on line 254
Run Code Online (Sandbox Code Playgroud)

有没有人以前见过这个错误并知道解决它的方法?先谢谢了。

php xdebug laravel composer-php whoops

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

由于可能存在无限循环,脚本中止

我已按照以下说明设置了最新版本的 NEOS:

  1. https://docs.neos.io/cms/installation-development-setup/manual-installation-with-a-web-server

  2. https://docs.neos.io/cms/installation-development-setup/running-the-setup-tool

登录 CMS 后,出现以下错误:

Xdebug has detected a possible infinite loop, and aborted your script with a stack depth of '256' frames
Exception Code  0
Exception Type  Error
Thrown in File  Packages/Framework/Neos.Flow/Classes/ObjectManagement/ObjectManager.php
Line    539
Run Code Online (Sandbox Code Playgroud)

我当地的环境:

PHP Version 7.3.26-1+ubuntu20.04.1+deb.sury.org+1
XDebug 3.0.2
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题?

xdebug neoscms

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

Docker 中的 Xdebug CLI

我在 GitHub 和 StackOverflow 上读了很多帖子,但没有找到答案。

我有带有 PHP 7.4 和 Xdebug 3 的 Docker 容器。IDE 是 PhpStorm。当我在浏览器中使用 Xdebug 时,Xdebug 工作正常。但是当我在容器中使用 PHP CLI 时,Xdebug 不起作用。

xdebug.ini:

zend_extension=xdebug.so

[xdebug]
xdebug.mode = debug
xdebug.client_port = 9003
xdebug.discover_client_host = 1

xdebug.remote_log=/var/log/xdebug.log
Run Code Online (Sandbox Code Playgroud)

我从容器连接 bash:docker exec -it CONTAINER_NAME bash 并运行例如:bin/console my:command(Symfony)。没有结果,当我添加到配置时xdebug.start_with_request = yes,我可以看到警告:

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)

看起来容器无法与我的主机系统连接,其中 PhpStorm 开放了 9003 端口。但是当在网络服务器上使用相同的配置时它可以工作......

root@31aab3e484e1:/var/www/symfony# php -v
PHP 7.4.13 (cli) (built: …
Run Code Online (Sandbox Code Playgroud)

xdebug phpstorm docker

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

Xdebug:[单步调试] 连接调试客户端超时,等待:200 毫秒。尝试过:本地主机:9003

我的 php.ini 配置:

[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"   
xdebug.mode = debug 
xdebug.remote_autostart = on
xdebug.profiler_enable = on
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="c:/xampp/tmp"
xdebug.show_local_vars=0
xdebug.remote_host = 127.0.0.1
xdebug.remote_enable = 1
xdebug.remote_port = 9003
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_log="c:/xampp/tmp/xdebug.log"
Run Code Online (Sandbox Code Playgroud)

我的 launch.json 配置:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        
        {
            "name": "Listen for XDebug", …
Run Code Online (Sandbox Code Playgroud)

php apache xampp xdebug visual-studio-code

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

Xdebug 在 Mac m1 上安装失败

我正在尝试在我的 Mac m1 上安装 Xdebug,我按照此页面(https://xdebug.org/docs/install)进行安装。这是我遵循的步骤:

步骤1 => 转到cmd:arch -x86_64 sudo pecl install xdebug

step2 => 去php.ini删除这行代码

zend_extension="xdebug.so"
Run Code Online (Sandbox Code Playgroud)

步骤3 => 转到 php.ini 添加此内容

[xdebug]
zend_extension=/opt/homebrew/lib/php/pecl/20190902/xdebug.so
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port="9003"
Run Code Online (Sandbox Code Playgroud)

步骤4 => 转到cmd:php -v

错误显示:

在此输入图像描述

我怎么解决这个问题?谢谢

php xdebug

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

使用 PHP + XDEBUG 时在 VS Code 中显示长字符串

我正在使用 VS Code 进行 PHP Web 开发。带有 XDEBUG 的 VS Code 在显示字符串值变量方面似乎受到严重限制。变量和监视窗口仅限于窗口宽度或第一个换行符。

您可以通过评估字符串在调试控制台中显示更多内容,但最多只能超过 1000 个字符。该字符串被简单地截断。当您复制值并粘贴到编辑器窗口中时,也会发生同样的情况。

当处理任何类型的现实生活中的 HTML 时,这是相当不充分的。

我正在使用 VS Code 1.57.1​​ 和 XDEBUG 1.16.1(和 PHP Intelephense 1.7.1)

有人知道调整这个的方法吗?

php xdebug visual-studio-code

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