@@ -39,6 +39,7 @@ ZEND_BEGIN_MODULE_GLOBALS(zend_test)
39
39
int observer_show_init_backtrace ;
40
40
int observer_show_opcode ;
41
41
int observer_nesting_depth ;
42
+ int replace_zend_execute_ex ;
42
43
ZEND_END_MODULE_GLOBALS (zend_test )
43
44
44
45
ZEND_DECLARE_MODULE_GLOBALS (zend_test )
@@ -332,10 +333,17 @@ PHP_INI_BEGIN()
332
333
STD_PHP_INI_BOOLEAN ("zend_test.observer.show_return_value" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_show_return_value , zend_zend_test_globals , zend_test_globals )
333
334
STD_PHP_INI_BOOLEAN ("zend_test.observer.show_init_backtrace" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_show_init_backtrace , zend_zend_test_globals , zend_test_globals )
334
335
STD_PHP_INI_BOOLEAN ("zend_test.observer.show_opcode" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_show_opcode , zend_zend_test_globals , zend_test_globals )
336
+ STD_PHP_INI_BOOLEAN ("zend_test.replace_zend_execute_ex" , "0" , PHP_INI_SYSTEM , OnUpdateBool , replace_zend_execute_ex , zend_zend_test_globals , zend_test_globals )
335
337
PHP_INI_END ()
336
338
337
339
static zend_observer_fcall_handlers observer_fcall_init (zend_execute_data * execute_data );
338
340
341
+ void (* old_zend_execute_ex )(zend_execute_data * execute_data );
342
+ static void custom_zend_execute_ex (zend_execute_data * execute_data )
343
+ {
344
+ old_zend_execute_ex (execute_data );
345
+ }
346
+
339
347
PHP_MINIT_FUNCTION (zend_test )
340
348
{
341
349
zend_class_entry class_entry ;
@@ -431,6 +439,11 @@ PHP_MINIT_FUNCTION(zend_test)
431
439
(void )ini_entries ;
432
440
}
433
441
442
+ if (ZT_G (replace_zend_execute_ex )) {
443
+ old_zend_execute_ex = zend_execute_ex ;
444
+ zend_execute_ex = custom_zend_execute_ex ;
445
+ }
446
+
434
447
return SUCCESS ;
435
448
}
436
449
0 commit comments