View Issue Details

IDProjectCategoryView StatusLast Update
0001573XdebugProfilingpublic2019-08-26 12:37
Reporterzulus Assigned Toderick  
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.
Attached Files
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.

Issue History

Date Modified Username Field Change
2018-08-23 12:32 zulus New Issue
2018-10-20 00:51 derick Note Added: 0004709
2018-10-20 00:51 derick Assigned To => derick
2018-10-20 00:51 derick Status new => feedback
2019-01-23 19:51 derick Note Added: 0004845
2019-02-09 11:15 zulus Note Added: 0004877
2019-02-09 11:15 zulus Status feedback => assigned
2019-02-12 08:50 derick Note Added: 0004887
2019-02-12 08:50 derick Status assigned => feedback
2019-03-10 17:18 derick Note Added: 0004956
2019-03-28 22:46 asoki File Added: testcase-0001573.tar.gz
2019-03-28 22:46 asoki Note Added: 0004979
2019-04-03 15:50 derick Note Added: 0004981
2019-04-03 15:50 derick Status feedback => confirmed
2019-04-03 15:50 derick Target Version => 2.7.0dev
2019-06-28 11:16 derick Target Version 2.7.0dev => 2.8.0dev
2019-07-29 09:54 derick Summary Profiling Symfony 2.8 produce additional broken cachegrind file for exception_handler => Using an exception_handler creates an extra broken profiler file
2019-07-29 13:05 derick Status confirmed => closed
2019-07-29 13:05 derick Resolution open => fixed
2019-07-29 13:05 derick Fixed in Version => 2.8.0dev
2019-08-26 12:37 derick Fixed in Version 2.8.0dev => 2.8.0beta2