我无法将PHP脚本调试为脚本.它始终在启动后立即终止.我在php.ini中设置了一个Xdebug日志,但它完全没有用.Xdebug 确实显示在我的phpinfo()上,所以我知道它在Apache中加载.
我也可以将代码调试为一个网页(它不提供变量信息,但不会在断点上停止),所以我知道Eclipse有适当的服务器设置.两个调试选项都使用相同的PHP exe(使用XAMPP安装的那个,使用vc6编译器编译的php 5.3.1).我确保Xdebug的编译符合这些设置.
在一个可能相关的说明:我注意到我只能使用zend_extension命令加载Xdebug,而不是zend_extension_ts,即使我的PHP版本确实是线程安全的?我不得不承认我有点困惑.
我也非常肯定无论我在Eclipse中选择"XDebug",我都做到了.我已经按照两个教程在这里无济于事.有人有主意吗?我已经尝试了与我的XAMPP(2.0.6-dev)捆绑在一起的Xdebug版本,我还下载了一个新的.dll版本2.1.
谢谢!
我安装了 Sublime Text 2 XDebug 插件,但无论我做什么,堆栈和跟踪窗格都是空的。按 shift+f8 后菜单工作。“添加断点”也有效。但是,每当我选择开始调试时,我都会使用标准调试信息定向到我的浏览器,但在 Sublime Text 的窗格中没有任何显示。
我在 Win7 x64 WAMP Server 2.2 上:PHP 5.4.3 + Apache 2.4.2
我通过 phpinfo() 和 xdebug_is_enabled() 检查,xdebug 已安装并正在运行。
我当前的配置(bin/apache/[apache...]/bin/php.ini,当然:
zend_extension = "[wamp 路径]/bin/php/php5.4.3/ext/php_xdebug-2.2.0-5.4-vc9-
x86_64.dll"
[xdebug]
xdebug.remote_enable = 1
xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_autostart = On
;Trace settings
xdebug.auto_trace = On
xdebug.profiler_enable = On
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "[wamp path]/wamp/tmp"
Run Code Online (Sandbox Code Playgroud)
请注意扩展的路径是正确的。扩展名本身也如上。我检查了这个页面的链接,但仍然没有。
对此的任何帮助将不胜感激。谢谢!
我在Mac OSX Mavericks上使用MAMP.我想安装最新的XDebug,v2.2.4.根据XDebug向导,我下载了XDebug 2.2.4源代码.我的系统上安装了许多版本的phpize - 一个位于/ usr/bin /中,还有许多其他版本的MAMP.MAMP为它包含的每个PHP版本提供所需的phpize.
寻求使用正确的phpize,根据XDebug向导说明 - http://xdebug.org/docs/faq#custom-phpize - 我通过以下方式运行php.5 for PHP 5.5.3:
/Applications/MAMP/bin/php/php5.5.3/bin/phpize
Run Code Online (Sandbox Code Playgroud)
..得到了这个输出:
grep: /Applications/MAMP/bin/php/php5.5.3/include/php/main/php.h: No such file or directory
grep: /Applications/MAMP/bin/php/php5.5.3/include/php/Zend/zend_modules.h: No such file or directory
grep: /Applications/MAMP/bin/php/php5.5.3/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
Run Code Online (Sandbox Code Playgroud)
万一这不是一个错误(因为它似乎我遵循XDebug向导),然后我运行configure via:
./configure --with-php-config=/Applications/MAMP/bin/php/php5.5.3/bin/php-config
Run Code Online (Sandbox Code Playgroud)
......我跑了:
make
Run Code Online (Sandbox Code Playgroud)
...但得到了这个错误:
fatal error: 'php.h' file not found
Run Code Online (Sandbox Code Playgroud)
在OSX上构建XDebug以供MAMP使用的正确方法是什么?
非常感谢所有人的想法或信息.
我正在尝试调试我的Codeception测试。
当从浏览器使用正确的IDE-KEY作为 cookie时,我使用PHPStorm + XDebug 的调试平台运行良好。
但是,在尝试使用CLI调试 codecept 时,我遇到了以下问题:
如果我尝试Resume、Step Out或Step Over,xdebug 会忽略我的请求并始终步入当前行。
这让我的测试真的很难继续。
我尝试过使用两个平台:我常用的 vagrant + nginx + php5-fpm(带远程调试)和 wamp(本地调试)。
任何帮助,将不胜感激!
——
更新: 嗯,这与 Codeception 无关。我尝试仅使用PHPUnit进行测试,结果也是如此。CLI 似乎也不是问题,因为我尝试从浏览器调试 PHPUnit,但没有成功。
我想可能是 PHPStorm 错误,但查看 xdebug 日志,我看到调用了正确的方法:
<- step_over -i 41
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="step_over" transaction_id="41" status="break" reason="ok">
Run Code Online (Sandbox Code Playgroud)
step_over 被调用,而不是 step_into。那么也许是 xdebug 的错误?
奇怪的是,这并不总是发生。更改配置后,有时不会发生,但是错误似乎又回来了......
在将我的 macbook 升级到 El Capitan 之前,我对 Phpstorm 9、php 5.6(通过自制软件)、xdebug(通过自制软件)进行了很好的设置。
然而,在过去一个月左右的时间里,我一直在绞尽脑汁,试图弄清楚如何使该设置再次起作用。
我很感激你们可能有的任何想法。
谢谢,艾尔
PS这是我的设置:
调试日志
Log opened at 2015-11-19 22:33:49
I: Checking remote connect back address.
I: Remote address found, connecting to 127.0.0.1:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///Users/eyalsh/Sites/test/index.php" language="PHP" protocol_version="1.0" appid="73266" idekey="PHPSTORM"><engine version="2.3.3"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2015 by Derick Rethans]]></copyright></init>
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
Log closed at 2015-11-19 22:33:49
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 VSCode(VSCcode 版本 1.9.1)配置 xdebug。
配置文件
[Xdebug]
zend_extension = D:\php\ext\php_xdebug.dll
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_log = D:\site\xlog.txt
Run Code Online (Sandbox Code Playgroud)
我默认的PHP端口是3000,($_SERVER['SERVER_PORT'] = 3000
其实我可以运行phpinfo()在localhost:3000
和Xdebug端口设置为xdebug.remote_port = 9000
X调试日志:
Log opened at 2017-02-17 20:50:56
I: Connecting to configured address/port: localhost:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///D:/site/index.php" language="PHP" xdebug:language_version="7.1.0-dev" protocol_version="1.0" appid="11384" idekey="Admin"><engine version="2.5.0"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2016 by Derick Rethans]]></copyright></init>
<- breakpoint_list -i 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="1"></response>
<- breakpoint_list …Run Code Online (Sandbox Code Playgroud) 我有运行我的应用程序的设置和 docker 机器。在这个 docker 机器中,xdebug 是通过这些 xdebug.ini 设置启用的。
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so
xdebug.remote_enable=on
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_host=10.5.0.1
Run Code Online (Sandbox Code Playgroud)
我的本地机器 IP 是 10.5.0.1
当我尝试在命令行上运行我的应用程序时,它会连接回 PhpStorm 调试器。但是由于没有路径映射,它停在脚本的第一行,断点不起作用。断点光标不可见,我无法F8按键跟踪代码。
此外,它必须显示某种路径映射错误 Debugger->Variables 窗口,但它不显示任何错误。
如何解决这个问题?
我在使用 Codeception 在 PhpStorm 中为我的应用程序运行测试时出错。我的代码正在通过 Vagrant 运行。
在我的用于 Codeception 测试的index.php的第一行是:
ini_set('xdebug.max_nesting_level', 200);
Run Code Online (Sandbox Code Playgroud)
我通过自制软件安装了 xdebug,这在我的 php 版本输出中:
PHP 7.1.12 (cli) (built: Dec 2 2017 12:15:25) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,虽然我在 PhpStorm 事件日志中收到错误:
Cannot accept external Xdebug connection: Cannot evaluate expression 'isset($_SERVER['PHP_IDE_CONFIG'])'
Run Code Online (Sandbox Code Playgroud)
在我的 PhpStorm 设置中,我将其设置为接受外部连接:
在 php info 我有可用的 xdebug 设置:
$ php -i | grep xdebug
Additional …Run Code Online (Sandbox Code Playgroud) 我正在尝试安装 xdebug 但经过很多努力仍然无法安装,我已经尝试过这个https://medium.com/@roberto.b/how-to-install-xdebug-with-my-php- 7-on-my-macosx-f85dbac91e59和很多 stackoverflow 问题,但仍然没有,
我做错了什么,但无法弄清楚是什么,请对此提供任何帮助...这是我在 error.log 上得到的
[Sat Apr 07 19:21:35.785293 2018] [so:warn] [pid 28523] AH01574: module php7_module is already loaded, skipping
Failed loading /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so: dlopen(/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so, 9): Symbol not found: _zend_pass_function
Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
Expected in: flat namespace
in /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
Failed loading /usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/opcache.so: dlopen(/usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/opcache.so, 9): Symbol not found: _zend_empty_string
Referenced from: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/opcache.so
Expected in: flat namespace
in /usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/opcache.so
[Sat Apr 07 19:21:35.904894 2018] [mpm_prefork:notice] [pid 28523] AH00163: Apache/2.4.28 (Unix) PHP/7.0.2 configured -- resuming normal operations
[Sat …Run Code Online (Sandbox Code Playgroud) 我需要在 ddev 项目中调试一个 drush 命令,但我不知道该怎么做。在 ddev v0.18.0 中,PhpStorm 调试器一开始就中断了,但是找不到相关代码。
xdebug ×10
php ×5
phpstorm ×4
codeception ×2
debugging ×2
macos ×2
ddev ×1
drupal ×1
drush ×1
eclipse ×1
makefile ×1
mamp ×1
sublimetext2 ×1
wampserver ×1
xampp ×1