我用vim与debugger和xdebug走线槽PHP应用程序.
在firefox(或任何其他浏览器)中,我需要打开页面,调用XDEBUG_SESSION_START=1附加到它的URL,以告诉xdebugPHP插件启动调试服务器.
这工作正常,但它可以变得更简单吗?
是否有一些firefox插件允许我自动添加此会话?一些xdebug设置允许我完全绕过这个?或者一些vim-addon,脚本或技巧,允许我自动添加该参数调用firefox?
我知道 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 侦听图标开始调试。
如果我做错了什么,你能告诉我吗?
我刚刚在我的 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 的任何内容。
我曾经对 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 中的错误报告对我来说似乎是一种肮脏的黑客行为,可能存在缺陷,而不是有效的解决方案。
如果没有此消息,我如何才能保持预期的行为?
希望你做得很好,我正在做一个 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)
有没有人以前见过这个错误并知道解决它的方法?先谢谢了。
我已按照以下说明设置了最新版本的 NEOS:
https://docs.neos.io/cms/installation-development-setup/manual-installation-with-a-web-server
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)
这里出了什么问题?
我在 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) 我的 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) 我正在尝试在我的 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
错误显示:
我怎么解决这个问题?谢谢
我正在使用 VS Code 进行 PHP Web 开发。带有 XDEBUG 的 VS Code 在显示字符串值变量方面似乎受到严重限制。变量和监视窗口仅限于窗口宽度或第一个换行符。
您可以通过评估字符串在调试控制台中显示更多内容,但最多只能超过 1000 个字符。该字符串被简单地截断。当您复制值并粘贴到编辑器窗口中时,也会发生同样的情况。
当处理任何类型的现实生活中的 HTML 时,这是相当不充分的。
我正在使用 VS Code 1.57.1 和 XDEBUG 1.16.1(和 PHP Intelephense 1.7.1)
有人知道调整这个的方法吗?