View Issue Details

IDProjectCategoryView StatusLast Update
0001573XdebugProfilingpublic2019-08-26 12:37
Reporterzulus Assigned To 
PrioritynormalSeverityminorReproducibilitysometimes
Status closedResolutionfixed 
Product Version2.6.1 
Target Version2.8.0devFixed in Version2.8.0beta2 
Summary0001573: Using an exception_handler creates an extra broken profiler file
Description

I recently added profiling support to Eclipse PDT but while playing with some of my Symfony 2.8 apps I realized that two cachegrind files are produced for single http request.

First for APPROOT/web/app_dev.php (it's OK), second for APPROOT/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php.

Unfortunately second haven't correct names/paths. Looks like it depend to first one. Is this normal? I can't find documentation for such behavior.

Additional Information

Problem appear on earlier Xdebug and PHP versions.

TagsNo tags attached.
Operating SystemMacOS 10.13
PHP Version7.2.0-7.2.4

Activities

derick

2018-10-20 00:51

administrator   ~0004709

I've heard rumours about this before, but it would really help if you could provide a small reproducible (set of) tests. I don't think it would need all of Symfony to reproduce this.

That said, I am not sure whether I will be able to detect this behaviour well enough to do anything about it, as things like shutdown or exception handlers sort of run in the same script's context, but also sideways of it.

derick

2019-01-23 19:51

administrator   ~0004845

Hi?

Did you manage to make a reproducible case?

cheers,
Derick

zulus

2019-02-09 11:15

reporter   ~0004877

Just download fresh symfony (I checked now on 4.2 https://symfony.com/download. And run main controller in profile mode.

You will see two profile files. One correct for index.php second (broken) for ErrorHandler.php

derick

2019-02-12 08:50

administrator   ~0004887

Hi — I know nothing about Symfony. Can you please explain in detail, with the exact steps on how to do " And run main controller in profile mode.".

cheers,
Derick

derick

2019-03-10 17:18

administrator   ~0004956

Hi - could you please point me to the answer to my Symfony question please?

asoki

2019-03-28 22:46

reporter   ~0004979

Hi Derick,

I think this could be related to 0001589 because he mentioned that the "second haven't correct names/paths".
Testcase with sample output is attached.
When you profile "xdtest1.php" two profiler output files will be created, one for the main "xdtest1.php" and a second one for the error/exception handler.

In the second file all file and function names will be missing when these first appeared in the first file:
"fl=(1) php:internal"
"fl=(2) /Users/asoki/develop/server/apps/apache/htdocs/xdtest1-errhandler.php"
"fn=(4) php::rand"

OS: MacOS 10.14.3

the configuration was:
[xdebug]
xdebug.profiler_enable=1
xdebug.profiler_output_dir=/Users/asoki/develop/server/tmp
xdebug.profiler_output_name=cachegrind.out.%p.%t
xdebug.profiler_aggregate=0
xdebug.profiler_append=0
xdebug.profiler_enable_trigger=0
xdebug.profiler_enable_trigger_value="foobar"

derick

2019-04-03 15:50

administrator   ~0004981

Thanks @asoki, I can indeed reproduce this with your minimal test case.