diff --git a/xdebug.c b/xdebug.c index 7442222f..d937b462 100644 --- a/xdebug.c +++ b/xdebug.c @@ -1187,11 +1187,26 @@ static void xdebug_overloaded_functions_restore(TSRMLS_D) PHP_RINIT_FUNCTION(xdebug) { char *idekey; + zend_long optimizer; #if defined(ZTS) && defined(COMPILE_DL_XDEBUG) ZEND_TSRMLS_CACHE_UPDATE(); #endif + if ((optimizer = INI_INT("opcache.optimization_level"))) { + zend_string *key = zend_string_init(ZEND_STRL("opcache.optimization_level"), 1); + zend_string *value; + + optimizer &= ~(1<<5); + + value = strpprintf(0, "0x%08X", optimizer); + + zend_alter_ini_entry(key, value, ZEND_INI_SYSTEM, ZEND_INI_STAGE_STARTUP); + + zend_string_release(key); + zend_string_release(value); + } + /* Get the ide key for this session */ XG(ide_key) = NULL; idekey = xdebug_env_key(TSRMLS_C);