On Thu, Oct 4, 2012 at 9:45 AM, Derick Rethans <der...@php.net> wrote: > On Sun, 30 Sep 2012, Stas Malyshev wrote: > >> 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 -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php