标签: xdebug

PHP内存调试

对于我的项目之一,我需要导入一个非常大的文本文件(~950MB).我正在为我的项目使用Symfony2和Doctrine 2.

我的问题是我得到的错误如下:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 24 bytes)
Run Code Online (Sandbox Code Playgroud)

如果我将内存限制增加到1GB,甚至会出现错误.

我试图通过使用XDebug和KCacheGrind(作为PHPEdit的一部分)来分析问题,但我真的不明白这些值:(

我正在寻找一种工具或方法(Quick and Simple,因为我没有太多时间)来找出为什么分配内存而不是再次释放.

编辑

要清除这里的一些内容,我的代码是:

$handle = fopen($geonameBasePath . 'allCountries.txt','r');

        $i = 0;
        $batchSize = 100;

        if($handle) {
            while (($buffer = fgets($handle,16384)) !== false) {

                if( $buffer[0] == '#') //skip comments
                    continue;
                //split parts
                $parts = explode("\t",$buffer);


                if( $parts[6] != 'P')
                    continue;

                if( $i%$batchSize == 0 )    {
                    echo 'Flush & Clear' . PHP_EOL;
                    $em->flush();
                    $em->clear();
                }

                $entity = $em->getRepository('MyApplicationBundle:City')->findOneByGeonameId( $parts[0] …
Run Code Online (Sandbox Code Playgroud)

php xdebug kcachegrind symfony doctrine-orm

1
推荐指数
1
解决办法
1627
查看次数

XDebug 已安装但未显示在 phpinfo() 中且不起作用

我正在尝试让 Ne​​tBeans 的 php 调试器在 Ubuntu 中工作。当我尝试启动调试会话时,它会一直尝试建立连接,但最终它给我一条错误消息,说没有与 netbeans-xdebug 的连接可用。我已经安装了 php5-xdebug,但是当我尝试使用 phpinfo() 查看它时,它没有显示。我的 php/apache2/php.ini 有以下几行代码:

zend_extension=/usr/lib/php5/20090626/xdebug.so
[debug]
; Remote settings
xdebug.remote_autostart=off
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey="netbeans-xdebug"

; General
xdebug.auto_trace=off
xdebug.collect_includes=on
xdebug.collect_params=off
xdebug.collect_return=off
xdebug.default_enable=on
xdebug.extended_info=1
xdebug.manual_url=http://www.php.net
xdebug.show_local_vars=0
xdebug.show_mem_delta=0
xdebug.max_nesting_level=100
;xdebug.idekey=

; Trace options
xdebug.trace_format=0
xdebug.trace_output_dir=/tmp
xdebug.trace_options=0
xdebug.trace_output_name=crc32

; Profiling
xdebug.profiler_append=0
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=0
xdebug.profiler_output_dir=/tmp
xdebug.profiler_output_name=crc32
Run Code Online (Sandbox Code Playgroud)

如您所见,我曾尝试自己解决它,但我无法让它发挥作用。任何帮助将不胜感激...

php ubuntu netbeans xdebug

1
推荐指数
1
解决办法
3582
查看次数

错误 DBGp 响应错误:错误代码 206

到目前为止,我已经使用了 Eclipse 的 Xdebug 3 个月。它运行得非常好。

但是,我遇到了一个 Xdebug 问题,即“DBGp 响应错误:eval:=206 msg:error 评估代码”(在错误日志中)。

在我调查错误后,我发现问题是:

206 - 评估代码时出错(从 eval() 中使用(或使用 property_get 获取全名))”

这是来自http://xdebug.org/docs-dbgp.php 的参考

我为这个问题花了 2 天时间,没有任何改变。

请帮我解决这个问题。非常感谢并非常感谢您的帮助。

eclipse xdebug

1
推荐指数
1
解决办法
665
查看次数

在NetBeans上使用XDebug进行卷曲

尝试使用Netbeans上的Xdebug(在Windows 8上)调试卷曲请求时,我遇到了一个奇怪的问题.这是我的代码:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://localhost");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

    $response = curl_exec($ch);
    if ( curl_errno($ch) ) {
        $result = 'ERROR -> ' . curl_errno($ch) . ': ' . curl_error($ch);
        echo $result;
    }

    print "\n response = \n";
    var_dump($response);

    // close cURL resource, and free up system resources
    curl_close($ch);

    die;
Run Code Online (Sandbox Code Playgroud)

当我使用Netbeans进行调试时,我得到:

ERROR -> 28: Operation timed out after 10015 milliseconds with 0 out of -1 bytes  receivedresponse = bool(false)
Run Code Online (Sandbox Code Playgroud)

当我在没有调试的情况下运行时,我没有得到错误和xampp页面的响应.

在php.ini我有:

[XDebug]
zend_extension …
Run Code Online (Sandbox Code Playgroud)

php curl netbeans xdebug

1
推荐指数
1
解决办法
1482
查看次数

如何将XDebug zend_extension添加到php.ini?

我有一个带有cPanel WHM的VPS,我正在尝试启用XDebug.我通过转到安装了扩展程序,WHM -> Software -> Module Installers -> PHP Pecl -> Manage并通过检查我的phpinfo()页面确认已安装.

下一步是在我的php.ini文件中启用XDebug,但是我有点困惑我应该怎么做.

看看php.ini /usr/local/lib,我在底部看到这一行:

zend_extension="/usr/local/Zend/lib/Guard-6.0.0/php-5.4.x/ZendGuardLoader.so"
Run Code Online (Sandbox Code Playgroud)

但是,在WHM - >服务配置 - > PHP配置编辑器中,有一个带有此值的"zend_extension"选项:

/usr/local/IonCube/ioncube_loader_lin_5.4.so, /usr/local/Zend/lib/Guard-6.0.0/php-5.4.x/ZendGuardLoader.so
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我应该如何添加XDebug的路径:

/usr/local/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so
Run Code Online (Sandbox Code Playgroud)

到php.ini?我看到三种方法,我不知道哪种方法是正确的:

  1. 我可以将它添加到WHM中以逗号分隔的列表中
  2. 我可以直接在php.ini中添加它,在它和现有值之间加一个逗号
  3. 我可以把它放在php.ini的新行上

哪种方式是正确的?

php xdebug

1
推荐指数
1
解决办法
2万
查看次数

在Docker for Mac上使用SSH隧道的Xdebug

我最近在Docker社区上阅读了很多关于如何使用Docker for Mac在PHPStorm中调试PHP应用程序的帖子.所有这些都包含有用的信息,但没有在一个地方看到工作解决方案.

php xdebug ssh-tunnel docker docker-for-mac

1
推荐指数
1
解决办法
2826
查看次数

从Sublime Text 3隐藏Xdebug面板

我在我的Sublime 3上安装了Xdebug软件包.调试工作正常,但是我无法摆脱底部的Xdebug面板......

按Esc什么也没做.当我有"查找"面板选择时,只需按Esc就会消失,但它不适用于Xdebug面板,任何帮助?

我在这里找到了这个Sublime Text 3 - Xdebug Context面板,但它还没有任何答案......

在此输入图像描述

xdebug sublimetext3

1
推荐指数
1
解决办法
432
查看次数

在VSCode上调试Laravel应用程序

有没有人成功配置VSCode来调试基于Laravel的网站?在阅读了无数文章和教程之后,我已经达到可以让VSCode“收听XDEBUG”的地步,但是我无法进行常规的 VS风格的调试,只能按F5来启动当前版本。在我最喜欢的浏览器中访问该网站,就像遇到完整的Visual Studio或Eclipse一样,当它遇到断点时,它会闯入VSCode。

我在机器上正确设置了以下内容:

  • VSCode 1.25.1
  • XAMPP 1.8
  • XDEBUG(已配置且正在运行)
  • VSCode的PHP调试扩展

我不确定我需要在哪种启动配置中使用launch.json。PHP Debug扩展附带的两个配置如下所示:

{
    "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)

第一种配置正常工作时(我可以在VSCode中以该模式启动调试,然后在浏览器中单独启动我的网站,并遇到断点),第二种配置失败。它告诉我无法找到Controller类(这是Laravel框架类)。用名称空间来限定类名也没有用。

我的猜测是,这与启动配置的设置有关。它尝试将活动脚本作为独立的单元启动,因此无法找到位于不同文件中的框架类的定义。我们必须以某种方式提供将网站作为单个应用程序启动的功能。

有人成功做到了,告诉我我在这里缺少什么吗?

php xdebug laravel visual-studio-code

1
推荐指数
1
解决办法
3786
查看次数

安装后xdebug无法正常工作并设置php设置

我在PHP 7.3上安装了Xdebug pecl install xdebug

当我将这些设置添加到/etc/php/7.3/apache2/php.ini并重新加载apache时,页面失败并且没有数据发送到服务器.

xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
zend_extension="/usr/lib/php/20180731/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.halt_level=E_WARNING|E_NOTICE|E_USER_WARNING|E_USER_NOTICE
xdebug.scream=1
Run Code Online (Sandbox Code Playgroud)

不知道为什么它不起作用.

php xdebug

1
推荐指数
1
解决办法
2356
查看次数

我如何通过运行Xdebug的PHPUnit加快测试速度

我上运行的测试PHPUnit使用Xdebug,用于生成覆盖率,这是非常缓慢的。

我尝试使用,PHPdbg但这会导致内存错误。

有人告诉我可以创建一个过滤器文件,这会有所帮助。谁能告诉我这将如何工作。

php phpunit xdebug

1
推荐指数
1
解决办法
65
查看次数