问题标签 [xdebug-profiler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1222 浏览

php - Windows localhost 上的 PhpStorm 和 xdebug 分析器设置

我很难让 xdebug 分析工作并集成到 PhpStorm 2017。我试图跟随这个视频但没有成功。

我知道 xdebug 已正确安装在 Web 服务器上(Windows 上的本地 Apache 安装)并正确集成到 PhpStorm 中,因为当我在 IDE 中单击“开始侦听 PHP 调试连接”时,我的断点会停止代码执行,我只能调试美好的。我只是无法让探查器生成它的文件,我什至不知道它是否正在运行。

php.ini

在我的 PHP 执行开始时,我尝试像这样打开分析:

我还尝试使用以下命令从命令行运行脚本:

不会引发错误。也没有创建文件C:\websites\tmp

我遇到了最简单的 Xdebug扩展,但如果可以避免的话,我宁愿不依赖其他软件(而且我什至没有尝试过它是否可以工作)。

  • PHP 5.6
  • 阿帕奇 2.4
  • xdebug 2.5.5
  • 2017 年 PHP 风暴
  • 视窗 7 64 位

更新

我了解了xdebug.remote_logini 指令并将其设置为一个文件,然后重新启动了 Apache。这是我在运行正常调试会话时在日志中看到的内容(意味着我在 PhpStorm 中单击“开始侦听 PHP 调试连接” ):

正如我所说,调试工作正常。现在,如果不监听调试但尝试使用命令行参数php script.php -d xdebug.profiler_enable=1或在脚本中启用探查器ini_set('xdebug.profiler_enable','1'),这就是 xdebug 日志显示的内容

更新 2

我只是能够生成探查器的cachegrind.out文件!我还不知道完成这项工作的确切限制,但我所做的是取消注释上面的php.inixdebug.profiler_enable行并重新启动 Apache。我仍然需要一种方法来按需启用分析器,就像我在顶部链接的视频中那样。在php.ini中始终打开它会增加太多开销,因为大多数时候我不需要分析器数据

0 投票
0 回答
2150 浏览

php - PhpStorm 不会打开 xdebug profiler 快照文件

==================================================== =======

忽略此帖。可以在PHP auto_prepend_file 中找到关于此问题的更简单的说明,导致 xdebug 分析器失败

==================================================== =======

原始帖子(和更新)

当我尝试使用以下命令在 PhpStorm 中打开 xdebug 分析器快照时:

菜单栏 >> 工具 >> 分析 xdebug profiler 快照...

我选择了创建的文件 xDebug,但我遇到了这个错误:

错误:探查器快照格式不正确:名称格式不正确

我没有重命名快照。它是默认名称:cachegrind.out.8008

php.ini

为什么 PhpStorm 不会打开快照?我应该设置自定义xdebug.profiler_output_name选项吗?

更新

我关闭了所有项目,从 PhpStorm 升级2017.1.42017.2,重新启动 Apache,删除了旧快照并创建了一个新快照。 新的打开没有麻烦。

更新 2

似乎如果我通过调用从命令行运行文件,>php script.php则可以打开生成的快照。如果我从浏览器运行相同的文件(意味着我通过 Apache 网络服务器:)localhost/script.php,则无法打开快照。

更新 3

我还注意到,当我从浏览器执行时,我无法删除快照,直到我强制停止 Apache 进程。我正在分析的 PHP 文件没有说明:只是<?php. 以下是创建的两个快照:

从命令行执行时(PhpStorm 打开此文件没有问题):

从浏览器执行时(PhpStorm 无法打开此快照):

更新 4

罪魁祸首是auto_prepend_fileini设置。我在 Apache Vhosts 中有以下设置:

该文件在 Apache 执行从浏览器调用的脚本之前运行。当我从命令行运行脚本时,此设置(在我的 Apache Vhosts 配置中)永远不会生效,因此init.php不会运行。相反,如果我将设置移动到php.ini它也会影响命令行执行的位置,那么从命令行生成的快照也会停止工作。

如果我删除该auto_prepend_file设置,生成的分析器快照可以在 PhpStorm 中毫无问题地打开。当然这不是一个修复,因为我需要auto_prepend_file执行才能让我的应用程序正常工作。

0 投票
0 回答
927 浏览

php - PHP auto_prepend_file 导致 xdebug 分析器失败

我在运行 Apache 2.4 和 PHP 5.6 的 Windows 7 机器上使用 xDebug 2.5.5。xDebug 探查器工作正常,除非我使用php auto_prepend_file

php.ini中

或在Apache Vhost中

在任何一种情况下,添加此指令都会导致生成的分析器快照cachegrind.out.####以某种方式损坏。我无法在 PhpStorm(我的 IDE)或使用WinCacheGrind打开它。另外,在我杀死 Apache 进程之前,我无法删除快照

WinCacheGrind 错误

模块“WinCacheGrind.exe”中地址 004A5908 的访问冲突。

读取地址 00000000

PhpStorm 错误

不正确的 Profiler 快照格式:不正确的名称格式

有什么建议吗?

PS:我投票结束了我之前被错误标记的问题b/c 我认为我的问题与 PhpStorm 而不是 xDebug 有关

0 投票
1 回答
981 浏览

php - xdebug 探查器 laravel 5.5 windows 空grindfile

我正在尝试使用 xdebug 2.5.5 php 版本 7.0.0 在 Windows 8.1 机器上分析 Laravel 5.5 应用程序。php 作为 cgi 运行

调试效果很好,我可以调试,但是分析器文件充满了这个 Laravel 错误(这仅适用于 Laravel 应用程序,在简单的 php 文件分析中工作正常):

我已经尝试使用 xdebug 2.5.5 php 版本 7.1.9。一样。

这是 xdebug 设置:

0 投票
0 回答
47 浏览

phpstorm - Xdebug/PhpStorm 配置文件中的时间百分比表示什么?

我正在使用 Xdebug 和 PhpStorm 来分析我的 Web 应用程序。我无法阅读配置文件结果并识别不同组件和统计数据的含义。

我假设时间旁边的百分比(以毫秒为单位)指的是总体运行时间的百分比,但正如您在下面的屏幕截图中看到的那样,百分比超过 100%。(这只是执行统计数据的一小部分 - 在其他文件中还有更多时间百分比。)

时间量旁边的百分比实际上指的是什么?

在此处输入图像描述

0 投票
1 回答
1032 浏览

php - Xdebug 探查器不写入文件

我正在使用 MAMP,并且在扩展选项卡中启用了 xdebug。调试工作正常,但探查器不写入任何文件。

php.ini

我有 xdebug 扩展,它在“分析器”上切换。我已经确定chmod了输出文件夹以777确保它不是权限问题。

我错过了什么?

0 投票
0 回答
332 浏览

php - 启用 xdebug.profiler_aggregate 时启动 MAMP 后的 ERR_EMPTY_RESPONSE

当我设置xdebug.profiler_aggregate=1然后 localhost 不再起作用并在 Chrome 中给出 ERR_EMPTY_RESPONSE (Safari 和 Firefox 也不起作用)。设置xdebug.profiler_aggregate=0一切正常。

禁用 xdebug.profiler_aggregate 的工作 php.ini 文件:

有人知道如何解决这个问题吗?

0 投票
2 回答
1550 浏览

php - Xdebug 探查器 - 探查器快照格式不正确

我正在尝试在 PhpStorm 中打开 xdebug 分析器输出,但出现错误:

我似乎找不到任何可能导致这种情况的迹象。

我在 OSX 10.13.4,PhpStorm 版本 2018.1 上,使用 xdebug 2.5.5 在 PHP 5.6.33 上运行进程

这是我的 php.ini 配置:

我认为探查器输出看起来有点奇怪,例如:

我不知道括号中的这些数字是做什么用的,但我认为这就是使 PhpStorm 分析器跳闸的原因。

0 投票
1 回答
20 浏览

php - 如何从 Xdebug 获取 stack_trace 并在其上构建?

我试图弄清楚是否有一种方法可以从 Xdebug 获取 stack_trace 信息,类似于 PhpStorm 或 NetBeans 之类的 IDE 如何获取它来存储它并进一步处理它。

非常感谢任何帮助。

0 投票
0 回答
124 浏览

php - 如何将多个 coverage-html 报告合并到一个报告中

我的 Web 服务是用 Laravel 5.6 编写的,这些服务由用 Cordova 编写的移动应用程序使用。我正在使用 Katalon Studio 来测试这个移动应用程序和它所使用的服务,并且我能够实现它。此外,每次从移动应用程序向 Web 服务发起请求时,我都能够生成覆盖率报告,但这里的问题是,它会根据移动应用程序命中的端点为我提供特定部分的覆盖率报告。现在,我为 Web 服务生成了几个 html 覆盖率报告,并正在寻找一种解决方法来组合所有这些报告。

PS:另外,我尝试生成三叶草 XML 覆盖率报告并能够组合它们,但不知道如何以图形方式表示它。

请帮助我,任何建议将不胜感激!