@@ -256,6 +256,27 @@ static void fiber_suspend_observer(zend_fiber_context *from, zend_fiber_context
256256 }
257257}
258258
259+ static void (* zend_test_prev_execute_internal )(zend_execute_data * execute_data , zval * return_value );
260+ static void zend_test_execute_internal (zend_execute_data * execute_data , zval * return_value ) {
261+ zend_function * fbc = execute_data -> func ;
262+
263+ if (fbc -> common .function_name ) {
264+ if (fbc -> common .scope ) {
265+ php_printf ("%*s<!-- internal enter %s::%s() -->\n" , 2 * ZT_G (observer_nesting_depth ), "" , ZSTR_VAL (fbc -> common .scope -> name ), ZSTR_VAL (fbc -> common .function_name ));
266+ } else {
267+ php_printf ("%*s<!-- internal enter %s() -->\n" , 2 * ZT_G (observer_nesting_depth ), "" , ZSTR_VAL (fbc -> common .function_name ));
268+ }
269+ } else {
270+ php_printf ("%*s<!-- internal enter '%s' -->\n" , 2 * ZT_G (observer_nesting_depth ), "" , ZSTR_VAL (fbc -> op_array .filename ));
271+ }
272+
273+ if (zend_test_prev_execute_internal ) {
274+ zend_test_prev_execute_internal (execute_data , return_value );
275+ } else {
276+ fbc -> internal_function .handler (execute_data , return_value );
277+ }
278+ }
279+
259280static ZEND_INI_MH (zend_test_observer_OnUpdateCommaList )
260281{
261282 zend_array * * p = (zend_array * * ) ZEND_INI_GET_ADDR ();
@@ -291,6 +312,7 @@ PHP_INI_BEGIN()
291312 STD_PHP_INI_BOOLEAN ("zend_test.observer.fiber_init" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_fiber_init , zend_zend_test_globals , zend_test_globals )
292313 STD_PHP_INI_BOOLEAN ("zend_test.observer.fiber_switch" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_fiber_switch , zend_zend_test_globals , zend_test_globals )
293314 STD_PHP_INI_BOOLEAN ("zend_test.observer.fiber_destroy" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_fiber_destroy , zend_zend_test_globals , zend_test_globals )
315+ STD_PHP_INI_BOOLEAN ("zend_test.observer.execute_internal" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_execute_internal , zend_zend_test_globals , zend_test_globals )
294316PHP_INI_END ()
295317
296318void zend_test_observer_init (INIT_FUNC_ARGS )
@@ -316,6 +338,11 @@ void zend_test_observer_init(INIT_FUNC_ARGS)
316338 zend_observer_fiber_switch_register (fiber_suspend_observer );
317339 zend_observer_fiber_destroy_register (fiber_destroy_observer );
318340 }
341+
342+ if (ZT_G (observer_execute_internal )) {
343+ zend_test_prev_execute_internal = zend_execute_internal ;
344+ zend_execute_internal = zend_test_execute_internal ;
345+ }
319346}
320347
321348void zend_test_observer_shutdown (SHUTDOWN_FUNC_ARGS )
0 commit comments