可能重复:
如何禁用XDebug
我已经安装了xdebug,但它使我的单元测试慢得多.有没有办法通过ini_set或其他方式禁用它.我尝试了xdebug_disable(),但没有任何区别,除非我更改php.ini文件.
我的想法是只在生成代码覆盖率报告时打开xdebug,我之前不需要它.
我有一个本地PHP服务器,xdebug与Xdebug JIT设置一起安装xdebug.除了一个非常烦人的问题,一切都很好.
问题是每次我在PHP脚本中遇到断点时,Eclipse都会打开带有完整路径的php文件,而不是工作区相对的.这会创建两个打开的文件,这不是问题,除了绝对文件中的设置断点没有在代码选项卡中正确显示(它们显示在断点列表中),以及设置或删除不同文件之间的断点是特定于路径的 - 因此您无法与其他文件表示中的断点进行交互.此外,跳转到新文件将在同一选项卡中打开.我想eclipse使用我已经打开的选项卡,我认为如果它没有使用绝对路径打开文件会发生.
我已经尝试在PHP服务器配置中设置路径映射,但它们似乎没有任何影响.我愿意接受任何建议.
谢谢!
我在PHP中有一个奇怪的内存问题.我认为有些东西只允许一个数组最大为0.25M.看起来脚本在崩溃之前只使用了大约6M.
这是xdebug的输出:

这是它正在调用的功能.sql查询的结果是大约800行文本.
public function getOptions(){
$sql = "select Opt,
Code,
Description
from PCAOptions";
$result = sqlsrv_query($this->conn,$sql);
$arrayResult = array();
echo ini_get('memory_limit'); //this confirms that my memory limit is high enough
while($orderObject = sqlsrv_fetch_object($result,'PCA_Option')){
array_push($arrayResult, $orderObject);
}
return $arrayResult;
}
Run Code Online (Sandbox Code Playgroud) 在HHVM中运行我的PHP脚本时,我看到我可以传递调试主机和调试端口参数,但我似乎无法确切地知道它的作用以及如何使用它.
这些参数是用于调试HHVM本身(或者可能是编译的PHP本身)还是用于调试PHP脚本?也就是说,它是用于调试HHVM的工作方式,还是用于调试,就像我通常使用XDebug一样,比如说?
起初我尝试将它连接到我为XDebug设置的IDE,但这似乎没有做任何事情,所以没有进行疯狂的追逐,我想我会问这里.
什么是HHVM的调试参数,确切地说,我如何使用它们来调试HHVM中的PHP脚本呢?
PHP在我的Windows桌面上运行得太慢,phpMyAdmin需要几分钟才能打开数据库.以下是运行简单PHP测试程序的时间比较:
这是测试程序......
<?php
$rStartTime = microtime(true);
$countTo = 100000;
$a = 0;
//$countTo = $countTo * 100;
for ($x = 0; $x <= $countTo; $x++) {
$a = sqrt(pow($x, 2));
}
$rMs = floor((microtime(true) - $rStartTime) * 1000);
echo 'timer done, countTo=' . $a . ' ms=' . $rMs;
Run Code Online (Sandbox Code Playgroud)
通过在Firefox中输入" http://localhost/timer.php " ,可以在不进行调试的情况下运行测试程序.
本地机器通常很快.它正在运行......
是什么让PHP运行得如此之慢?
使用Visual Studio Code调试PHP时遇到一个小问题.XDebug工作正常,我能够在断点处停下来并通过将变量悬停在它们上或将它们添加到观察中来评估变量.但是,当我尝试查看具有超过32个项目的数组时,我只能看到前32个项目.例如,172个项目的数组将只显示32个项目.我尝试以某种方式评估此数组,在控制台内运行dump命令或json_encode,但无济于事.
有任何想法吗?
我正在尝试在以下场景中使用XDebug
我从Windows主机创建了一个Netbeans项目,指向\\ guestIP\mysite.在项目运行配置中,我有以下内容:
在高级运行配置中:
我在我的Ubuntu VM上的php.ini中有以下内容
xdebug.remote_enable = on
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = /tmp
;xdebug.remote_host=localhost,<HostIP>, mysite.local.fr
xdebug.remote_connect_back=1
xdebug.remote_handler=dbgp
xdebug.idekey="netbeans-xdebug"
xdebug.remote_mode=req
Run Code Online (Sandbox Code Playgroud)
这些都不起作用,Netbeans不会在Windows的任何断点处停止.
使用Netbeans直接从我的VM调试工作正常.
有人能告诉我如何让我的调试器从Windows远程工作吗?谢谢
在使用xdebug时,Intellij总是在我的php脚本的第一行暂停我的脚本,我不知道为什么
有任何想法吗?


有一段时间,我正在使用Phpstorm EAP,并且xdebug完美运行.我最近购买了个人许可证,并将我在EAP中的所有设置导入7.1.3.现在xdebug不起作用.
这是xdebug.ini
zend_extension=xdebug.so
xdebug.remote_host = 192.168.56.1
xdebug.remote_cookie_expire_time = 36000
xdebug.remote_log = /tmp/xdebug.log
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.remote_enable = 1
xdebug.remote_autostart = 0
xdebug.idekey="PHPSTORM"
xdebug.scream=0
xdebug.remote_connect_back=1
xdebug.show_local_vars=1
Run Code Online (Sandbox Code Playgroud)
xdebug也在php.ini中显示.我甚至在http://xdebug.org/wizard.php中运行它并安装了最新版本.
Phpstorm正在侦听端口9000上的xdebug,并且"侦听PHP调试连接"已启用.
我的xdebug日志经常告诉我这个:
Log opened at 2014-07-18 17:46:16
I: Checking remote connect back address.
I: Remote address found, connecting to 192.168.56.1:9000.
E: Time-out connecting to client. :-(
Log closed at 2014-07-18 17:46:16
Run Code Online (Sandbox Code Playgroud)
我甚至尝试过注册表编辑:http://brianreiter.org/2010/09/18/fix-virtualbox-host-only-network-adapter-creates-a-virtual-public-network-connection-that-causes -Windows到禁用服务/
无论我尝试什么,xdebug都会超时.即使关闭了所有防火墙.
我在Windows 7 Enterprise上.VM是puphpet/centos65-x64
编辑 忘了在Phpstorm中提到IDE密钥是PHPSTORM
我在VirtualBox VM上运行我的Symfony应用程序.PHP正在使用XDebug运行,并且已正确配置.我知道这一点,因为其他人已设法使其与同一个VM的快照一起工作.
当我尝试在VS Code XDebug中配置时,我使用以下内容 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",
"type": "php",
"request": "launch",
"port": 9000
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是当我点击"开始调试:侦听XDebug"时,我收到以下错误:
错误:听EADDRINUSE ::: 9000
我试图杀死正在使用该端口的进程......令我惊讶的是,这是我尝试连接的虚拟机.
我在这个配置中错过了什么?