我知道这听起来很奇怪,但请相信我,这就是发生的事情.这是我的系统设置:
Windows7
Apache 2.2
PHP 5.2.12
Xdebug 2.0.5
我在PHP.ini文件中配置了XDebug.当我运行php -m时,我确实看到Xdebug已加载.现在,如果我启动Apache AS A SERVICE(或Apache Monitor),并运行phpinfo(),它不会显示Xdebug被加载.
然而,(现在这里的疯狂部分),如果我去我的Apache bin目录,并简单地运行httpd.exe,然后去看看phpinfo()函数,Xdebug的现在显示为被装!
此外,比较一些phpinfo()在通过服务或命令行启动时,看起来php.ini文件对于任何一种情况都是相同的.除了装载Xdebug的部件外,一切看起来都一样.
请,如果您有任何想法,将不胜感激.
我有以下用于调试PHP应用程序的用例:
在这种情况下可以使用xdebug吗?怎么样?
可以建立VPN,但这不是一个简单的解决方案,所以我更喜欢简化.
我正在考虑实现在生产服务器上配置代码并想要一些最佳实践建议的想法.显然,这是一个坏主意,配置文件,因为增加的开销的所有请求,所以我一直在寻找到一些技术,会随机调用每个请求的探查.每10,000个请求中有1个配置文件.
我知道有一种方法可以实现与Facebook的这样一个任务XHProf的探查,但使用的XDebug希望的是类似的解决方案.
所以我的问题是(假设xdebug是分析器):
对此事的任何其他见解将非常感激.
我使用XDebug作为PHP应用程序的分析器.我遇到了一个XDebug严重改变结果的情况,以至于它们没用.
这是一个演示问题的简化示例:
function foo(){ $x = 1; }
function bar(){ foo(); }
Run Code Online (Sandbox Code Playgroud)
测试A:
$t0 = microtime(true);
for ($i = 0; $i < 1000000; $i++) foo();
echo microtime(true) - $t0;
Run Code Online (Sandbox Code Playgroud)
测试B:
$t0 = microtime(true);
for ($i = 0; $i < 1000000; $i++) bar();
echo microtime(true) - $t0;
Run Code Online (Sandbox Code Playgroud)
所以,这些是我得到的结果(以秒为单位):
profiler | profiler > profiler
disabled | enabled > results
--------------------------------------------------------------------
output | output > total time time in foo() time in bar()
Test A 0.159 | 12.199 > 12.245 0.110 - (not …Run Code Online (Sandbox Code Playgroud) 我正在分析PHP应用程序(构建在Zend框架上).附上您可以找到KCacheGrind从xDebug输出生成的主调用图的屏幕截图.
有两件事我不明白:
1)为什么{main} "分叉"成2个电话?它们应该以某种方式并行还是一个接一个地发生?
2)左边的箭头{main}有一个带文字的小蓝条2x; 这是否意味着召唤Zend_Application->bootstrap发生了两次?

通过调试Liferay Portal,即tomcat应用程序,ThreadPoolExecutor$Worker.run() line: 912虽然我没有在这个类中设置断点,但eclipse通常会停止.这ThreadPoolExecutor不是我的应用程序类,我认为属于tomcat.我的问题是:这里出了什么问题,为什么日食会在这里停止?并且可以在eclipse中设置这样的"外部断点"来忽略吗?

我的操作系统是Mac Mountain lion.
我的PhpStorm版本是5.0.4.
这是我的php xdebug信息:
我可以在PhpStorm中调试PhpScript Run Type,它运行正常.所以我认为xdebug配置得很好.
但是在我尝试遵循"零配置调试"(使用Web应用程序运行类型)后,Phpstorm无法连接传入连接.
这是我的步骤:
lsof -i4TCP:9000.
命令PID用户FD类型设备大小/关闭节点名称
webide 288 wangfeng 69u IPv6 0xa83881cdce30c579 0t0 TCP*:cslistener(LISTEN)
打开Chrome的开发者工具,选择Cookie. …
我在虚拟机上使用Xdebug(Ubuntu guest).我正在使用Vagrant来管理这些VM,我正在配置一个"模式"操作系统来克隆它以进行Web开发.问题是我想配置这个ubuntu guest来接受来自任何主机的xdebug连接(xdebug显然是在guest虚拟机中).
这些说明不起作用:
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_connect_back=1
xdebug.remote_port=9000
Run Code Online (Sandbox Code Playgroud)
唯一的方法似乎是添加一行:
xdebug.remote_host=sdurzu
Run Code Online (Sandbox Code Playgroud)
"sdurzu"是主机的主机名,但我想为xdebug创建一个"通用"配置,而不是基于主机名或IP.
有没有办法使用外卡(*)或类似的东西?
我真的很茫然,我只是不明白如何解决这个错误.
Xdebug requires Zend Engine API version 220121212.
The Zend Engine API version 220131226 which is installed, is newer.
Run Code Online (Sandbox Code Playgroud)
我读过一些关于phpize的内容,但是当我运行命令时,我得到...
Make sure that you run '/usr/local/bin/phpize' in the top level source directory of the module
Run Code Online (Sandbox Code Playgroud)
我不确定这意味着什么.什么是顶级源目录?
有人可以帮我吗?
谢谢
我在VScode上配置Xdebug来调试我的laravel应用程序.但是,当我开始调试时,laravel总是抛出这个错误:Exception has occurred. Illuminate\Contracts\Encryption\DecryptException: The payload is invalid.
我已经试过了php artisan optimize.
这里有人已经遇到过这个问题吗 我正在使用Laravel 5.5
PS.我试图调试Laravel 4应用程序.它没有任何问题.所以,我认为这可能是Laravel 5特有的.