Hi!
I was looking into generators topic and I couldn't find answer to this
question: how generators are supposed to interact with PHP tools, such
as debuggers, profilers, etc.? Specifically, how calls to generator are
handled? Usually, the tool overrides zend_execute and
zend_execute_internal and every function call goes through there. But
generator does not use these - it uses execute_ex instead. So can
generator be debugged/profiled? What happens if I say "step out" inside
generator - would that work?
Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227
Adding Zeev, Derick and Dmitry in case they miss this post.
Hi!
I was looking into generators topic and I couldn't find answer to this
question: how generators are supposed to interact with PHP tools, such
as debuggers, profilers, etc.? Specifically, how calls to generator are
handled? Usually, the tool overrides zend_execute and
zend_execute_internal and every function call goes through there. But
generator does not use these - it uses execute_ex instead. So can
generator be debugged/profiled? What happens if I say "step out" inside
generator - would that work?Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227
I was looking into generators topic and I couldn't find answer to this
question: how generators are supposed to interact with PHP tools, such
as debuggers, profilers, etc.? Specifically, how calls to generator
are handled? Usually, the tool overrides zend_execute and
zend_execute_internal and every function call goes through there. But
generator does not use these - it uses execute_ex instead. So can
generator be debugged/profiled? What happens if I say "step out"
inside generator - would that work?
It won't work with Xdebug right now, as it indeed overrides just
zend_execute and zend_execute_internal --- we should definitely look at
fixing generators that they go through those as well. It's related to
the zend_execute_internal hook missing from the other email that I just
replied to (and your PR 178).
cheers,
Derick
--
http://derickrethans.nl | http://xdebug.org
Like Xdebug? Consider a donation: http://xdebug.org/donate.php
twitter: @derickr and @xdebug
Posted with an email client that doesn't mangle email: alpine
I was looking into generators topic and I couldn't find answer to this
question: how generators are supposed to interact with PHP tools, such
as debuggers, profilers, etc.? Specifically, how calls to generator
are handled? Usually, the tool overrides zend_execute and
zend_execute_internal and every function call goes through there. But
generator does not use these - it uses execute_ex instead. So can
generator be debugged/profiled? What happens if I say "step out"
inside generator - would that work?It won't work with Xdebug right now, as it indeed overrides just
zend_execute and zend_execute_internal --- we should definitely look at
fixing generators that they go through those as well. It's related to
the zend_execute_internal hook missing from the other email that I just
replied to (and your PR 178).cheers,
Derick
Generators won't be able to go through zend_execute, because they need
to work on an existing execution context and not create a new one on
every resume. So instead we will probably need an additional hook for
execute_ex (in which case the existing execute hook isn't really
necessary anymore).
Would that be okay?
Nikita
XDebug execute and execute_internal:
https://github.com/derickr/xdebug/blob/master/xdebug.c#L1215
https://github.com/derickr/xdebug/blob/master/xdebug.c#L1442
I was looking into generators topic and I couldn't find answer to
this question: how generators are supposed to interact with PHP
tools, such as debuggers, profilers, etc.? Specifically, how calls
to generator are handled? Usually, the tool overrides zend_execute
and zend_execute_internal and every function call goes through
there. But generator does not use these - it uses execute_ex
instead. So can generator be debugged/profiled? What happens if I
say "step out" inside generator - would that work?It won't work with Xdebug right now, as it indeed overrides just
zend_execute and zend_execute_internal --- we should definitely look
at fixing generators that they go through those as well. It's
related to the zend_execute_internal hook missing from the other
email that I just replied to (and your PR 178).Generators won't be able to go through zend_execute, because they need
to work on an existing execution context and not create a new one on
every resume. So instead we will probably need an additional hook for
execute_ex (in which case the existing execute hook isn't really
necessary anymore).Would that be okay?
Let's find out! I'd be happy to play around with this new hook and see
whether it works.
cheers,
Derick
--
http://derickrethans.nl | http://xdebug.org
Like Xdebug? Consider a donation: http://xdebug.org/donate.php
twitter: @derickr and @xdebug
Posted with an email client that doesn't mangle email: alpine