Morning Dmitry,

    Bob already exported it.


http://git.php.net/?p=php-src.git;a=commit;h=f59de7ea368da55f1f21ca82810febb3cdec06f0

Cheers
Joe

On Wed, May 4, 2016 at 7:28 AM, Dmitry Stogov <dmi...@zend.com> wrote:

> I don't see a big problem exporting zif_pass, if this's really necessary.
>
>
> Thanks. Dmitry.
>
> ________________________________
> From: Nikita Popov <nikita....@gmail.com>
> Sent: Saturday, April 30, 2016 8:40:54 PM
> To: Derick Rethans
> Cc: Dmitry Stogov; PHP Developers Mailing List
> Subject: Re: [PHP-DEV] zend_pass_function/zif_pass
>
> On Sat, Apr 30, 2016 at 7:12 PM, Derick Rethans <der...@php.net<mailto:
> der...@php.net>> wrote:
> Hi!
>
> I'm trying to make Xdebug up to date with master again, and after fixing
> the static changes that Dmitry highlighted, I am still baffled by
> something else.
>
> My function traces now have an extra entry for each constructor - even
> for classes that have no constructor, such as stdClass.
>
> Code
>
> <?php
> $tf = xdebug_start_trace(sys_get_temp_dir() . '/'. uniqid('xdt', TRUE));
>
> $a = new StdClass;
>
> xdebug_stop_trace();
> echo file_get_contents($tf);
> ?>
>
> In PHP 7.1 (master) this generates:
>
>                            => $tf = '/tmp/xdt5724dfa31b3050.51884776.xt'
> /home/derick/dev/php/derickr-xdebug/tests/assignment-trace11.php:2
>     0.0017     386376     -> {main}()
> /home/derick/dev/php/derickr-xdebug/tests/assignment-trace11.php:0
>                            => $a = class stdClass {  }
> /home/derick/dev/php/derickr-xdebug/tests/assignment-trace11.php:4
>     0.0017     386472     -> xdebug_stop_trace()
> /home/derick/dev/php/derickr-xdebug/tests/assignment-trace11.php:6
>     0.0018     386568
>
> Where as in PHP 5.6 and 7.0, it generates:
>
> TRACE START [2016-04-30 17:10:19]
>                            => $tf = '/tmp/xdt5724e6fb674b31.38510038.xt'
> /home/derick/dev/php/derickr-xdebug/tests/assignment-trace11.php:2
>                            => $a = class stdClass {  }
> /home/derick/dev/php/derickr-xdebug/tests/assignment-trace11.php:4
>     0.0006     274008     -> xdebug_stop_trace()
> /home/derick/dev/php/derickr-xdebug/tests/assignment-trace11.php:6
>     0.0006     274128
> TRACE END   [2016-04-30 17:10:19]
>
> The master version has the extra {main}, which comes from an additional
> call to zend_execute_internal.
>
> When looking into this, I see that that extra frame is a handle
> zend_pass_function / zif_pass. How has this changed recently, and more
> importantly, how can I detect this? I can't do "edata.func ==
> zend_pass_function" as neither zend_pass_function or zif_pass are
> exported symbols.
>
> Any hints on how to handle this?
>
> cheers,
> Derick
>
> Hey Derick!
>
> This change is due to
> http://www.serverphorums.com/read.php?7,1439618,1439618 /
> https://github.com/php/php-src/commit/8e5b139732893d2a5f6ba3ae0a0b2b5cf6dba09f
> .
>
> I don't see a good way for you to handle this as things stand now. I think
> we should export the zend_pass_function symbol.
>
> Nikita
>

Reply via email to