@@ -256,6 +256,27 @@ static void fiber_suspend_observer(zend_fiber_context *from, zend_fiber_context
256
256
}
257
257
}
258
258
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
+
259
280
static ZEND_INI_MH (zend_test_observer_OnUpdateCommaList )
260
281
{
261
282
zend_array * * p = (zend_array * * ) ZEND_INI_GET_ADDR ();
@@ -291,6 +312,7 @@ PHP_INI_BEGIN()
291
312
STD_PHP_INI_BOOLEAN ("zend_test.observer.fiber_init" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_fiber_init , zend_zend_test_globals , zend_test_globals )
292
313
STD_PHP_INI_BOOLEAN ("zend_test.observer.fiber_switch" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_fiber_switch , zend_zend_test_globals , zend_test_globals )
293
314
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 )
294
316
PHP_INI_END ()
295
317
296
318
void zend_test_observer_init (INIT_FUNC_ARGS )
@@ -316,6 +338,11 @@ void zend_test_observer_init(INIT_FUNC_ARGS)
316
338
zend_observer_fiber_switch_register (fiber_suspend_observer );
317
339
zend_observer_fiber_destroy_register (fiber_destroy_observer );
318
340
}
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
+ }
319
346
}
320
347
321
348
void zend_test_observer_shutdown (SHUTDOWN_FUNC_ARGS )
0 commit comments