我无法使用Xdebug来调试使用Code Igniter构建的应用程序,但我可以使用它来调试任何其他PHP文件,只要它不使用相同的结构来解决Code Igniter使用的url.
含义:在没有Code Igniter的简单PHP文件中,当我使用NetBeans调试时,浏览器转到:http:// localhost:86/index.php?XDEBUG_SESSION_START = netbeans-xdebug
由于没有使用Code Igniter或其他框架,NetBeans实际上可以调试PHP.
但是当在NetBeans中点击调试按钮时使用Code Igniter,浏览器会转到:
HTTP://本地主机:86/index.php的XDEBUG_SESSION_START = netbeans的-Xdebug的
根index.php所有发生在Code Igniter中没有运气,而是我得到标准的CodeIgniter"404 Page not found".
我的猜测是,由于Code Igniter用于解析url的结构段,xdebug无法进行任何调试.
示例:example.com/class/function/ID
如何使用Code Igniter使xdebug工作?
使用:
我正在开发一个Web应用程序.该项目位于我的linux盒子即服务器上.我们从Windows远程访问此计算机.
我正在使用xdebug与Eclipse PDT一起进行调试.
xdebug安装在我的服务器上.以下配置在php.ini文件中设置(位于服务器上):
xdebug.remote_enable=1
xdebug.remote_host=10.88.36.1
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_log = /tmp/xdebug.log
Run Code Online (Sandbox Code Playgroud)
在php.ini中为xdebug进行上述配置设置后,它只允许一个主机(即10.88.36.1)
我想允许多个主机.我知道在zend调试器中有一个配置参数选项可以做到这一点,即
zend_debugger.allow_hosts=10.88.36.28, 10.88.36.1
Run Code Online (Sandbox Code Playgroud)
是否有xdebug的等效选项,以便我能够允许多个主机远程访问服务器?
是否有一个x-debug或NetBeans设置来扩展它将显示的最大字符串大小?
使用NetBeans在Windows中调试PHP应用程序,我可以添加一个监视或悬停在任何变量上以查看其值.但是对于长字符串,我得到的只是(字符串),没有价值.
环境:Windows 7,NetBeans 7.0.1,x-debug 2.0.3-5.1.7,Apache 2.0.63,PHP 5.1.6
php.ini包含:
zend_extension_ts = c:\wamp\bin\php\php5.1.6\ext\php_xdebug-2.0.3-5.1.7.dll
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.var_display_max_data=2048
Run Code Online (Sandbox Code Playgroud) 对于unittest
class SampleTest extends PHPUnit_Framework_TestCase
{
public function testBreakpoint()
{
$a = 18;
}
}
Run Code Online (Sandbox Code Playgroud)
断点5号线"$ a = 18;",
使用NO --process-isolation选项运行unittest可以按预期停止第5行的脚本执行.运行相同的配置WITH --process-isolation选项不会在第5行停止执行.
选项--process-isolation在https://github.com/sebastianbergmann/phpunit/blob/3.6/PHPUnit/Util/PHP.php中的runJob函数中使用'proc_open'运行新进程中的每个测试
使用调试器插件测试PhpStorm 3和vim 7.它允许调试PHPUnit本身,但不允许调试测试用例.
有没有办法使用Xdebug调试由PhpUnit创建的子进程?可能是Zend Debugger?
我用Linux Mint 16,我进行了更新今天的版本Linux Mint 17,正确更新一切,但Xdebug的是没有被激活,所以我卸载并重新安装了它,我注意到,当我去安装Xdebug的,这表明此消息,警告您不能激活.
这是由于扩展的一些安全问题?如何启用xdebug现在这个新的更新安装?
default@Default-PC ~ $ sudo apt-get install php5-xdebug
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
php5-xdebug
0 upgraded, 1 newly installed, 0 to remove and 18 not upgraded.
Need to get 0 B/253 kB of archives.
After this operation, 982 kB of additional disk space will be used.
Selecting previously unselected package php5-xdebug.
(Reading database ... 272442 files and directories …Run Code Online (Sandbox Code Playgroud) 我在Windows上安装了Xampp(实际上是xampp和wamp都有,但两者都有相同的问题),并启用了xdebug.我已经安装了包含pdt的最新eclipse for eclipse.断点正常工作但是如果我按f6或f5当前行没有更新,变量就会改变,好像我已经走到下一行,但突出显示的行保持不变.有任何想法吗?
我附上一些截图,以便更容易理解:
断点有效:

我在'Debug'和'Variables'窗口中按f6,lineno和$ a更改:

我再次按f6:

我尝试更新到最新的xdebug,但同样的事情发生了.
这是我的开发设置:
IDE: PhpStorm 9.0.2
调试器: Xdebug 2.3.3
消息队列服务器: RabbitMQ 3.5.6
PHP Lib连接到RabbitMQ服务器: php-ampqlib
为了启动我的消费者,我正在使用CakePHP任务并运行如下:
../lib/Cake/Console/cake cron message_trigger_consumer
当我运行此命令时,我的消费者已启动并等待消息,该消息将来自生产者(例如:发送确认电子邮件的保存表单按钮).直到这里,一切都很好,但我的两个问题是:
1)有没有办法调试消费者?在我看来,消费者处于一个不同的过程,这就是为什么Xdebug无法调试它
2)有办法将我的消费者进程附加到我在PhpStorm + Xdebug中的当前调试吗?
如果你不明白我的问题,请告诉我你的疑惑.
我经常使用xdebug来调试应用程序,我已经构建了一个laravel应用程序,它可以上传一个csv,将数据插入到数据库中,并将id输入到作业队列中.
我写了一个工匠命令,通过cron运行,然后对这些数据做一些事情.
Xdebug适用于通过浏览器访问该站点,但从cli运行时它不会破坏断点.
我运行php5-fpm.我的文件/etc/php5/fpm/php.ini,并/etc/php5/cli/php/ini
都包含以下设置:
zend_extension=/usr/lib/php5/20121212/xdebug.so
xdebug.remote_enable = 1
xdebug.idekey = 'dev_docker'
xdebug.remote_autostart = 1
xdebug.remote_connect_back = {{my host ip}}
xdebug.remote_port = 9000
xdebug.remote_handler=dbgp
Run Code Online (Sandbox Code Playgroud)
然后我运行artisan命令
php artisan jobqueue::process --batch-size=10 --sleep=10
Run Code Online (Sandbox Code Playgroud)
我知道命令正在运行 - > info('text')显示在终端中
谁知道我错过了什么?
我正在尝试让xdebug在PHP 7上运行.我从版本http://xdebug.org/files/xdebug-2.4.0rc4.tgz构建了xdebug.so文件.phpize输出看起来正确(Zend Extension Api No: 320151012)然而我Xdebug requires Zend Engine API version 220121212.从PHP 得到.
所以我按照这些说明操作:
量身定制的安装说明
摘要
Xdebug已安装:无服务器API:Apache 2.0处理程序Windows:无Zend服务器:无PHP版本:7.0.9-1 Zend API编号:320151012 PHP API编号:20151012调试版本:无线程安全版本:无配置文件路径:/ etc /php/7.0/apache2配置文件:/etc/php/7.0/apache2/php.ini扩展目录:/ usr/lib/php/20151012说明
下载xdebug-2.4.1.tgz用tar -xvzf xdebug-2.4.1.tgz解压缩下载的文件运行:cd xdebug-2.4.1运行:phpize(如果你没有phpize,请参阅FAQ.
作为其输出的一部分,它应该显示:
配置:... Zend模块Api No:20151012 Zend Extension Api No:320151012如果没有,则使用错误的phpize.请按照此FAQ条目跳过下一步.
运行:./ configure运行:make运行:cp modules/xdebug.so/usr/lib/php/20151012编辑/etc/php/7.0/apache2/php.ini并添加行zend_extension =/usr/lib/php/20151012/xdebug.so重新启动Web服务器
除了我安装php7.0-dev而不是php5 apt-get install -y php7.0-dev.
当我运行phpize命令时,我得到以下输出:
配置:
PHP Api版本:20151012
Zend Module Api No:20151012
Zend Extension Api No:320151012
正如所料.但是,当我运行PHP时,我得到:
Xdebug需要Zend Engine API版本220121212.
安装的Zend Engine API版本320151012更新.
有关Xdebug的更高版本,请访问http://xdebug.org/docs/faq#api与Derick Rethans联系.
我显然在某处做错了!任何有关调试问题的帮助非常感谢!:)
我在用
Intellij 14.1.4,PHP v5.5.38,Xdebug v2.2.3
我进行了更改,定义了PHP $ GLOBALS ['CRED_TYPE']变量。我稍后删除了该变量。我检查了各处,并且不再在任何地方定义此变量。它只是在我的代码中不存在。
但是由于某种原因,我仍然遇到以下问题
(!)致命错误:第1行xdebug:// debug-eval中出现消息'Undefined index:CRED_TYPE'的致命错误'ErrorException'(第1行)(!)ErrorException:第1行xdebug:// debug-eval中未定义索引:CRED_TYPE
我什至重新克隆了整个项目,但是每当我尝试调试它时,它就会迷路(崩溃),有时我会收到此异常。这应该不存在,因为没有这样的代码,但是为什么我要得到这个。
也没有对文件的回溯。我不知道该怎么办,有什么想法吗?