View Issue Details

IDProjectCategoryView StatusLast Update
0001213XdebugUncategorizedpublic2018-01-29 21:52
Reporterderick Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionno change required 
Product Version2.4.0rc1 
Summary0001213: Support opcache
Description

There are still some issues with opcache, and test failures. Both with, and without filecaching enabled. Including an odd segfault.

The following test needs to be added too, to test for the JMPZNZ instruction:

03:51 <laruence> Derick, ping, it is used, at least it will used in opcache
optimizer, it will optimize two jmp to jmpznz is possible,
like JMPZ(V, L1), JMP(L2) to JMPZNZ(L1, L2);
03:51 <laruence> take switch ($a) {
03:51 <laruence> case "-";
03:51 <laruence> break;
03:51 <laruence> }

TagsNo tags attached.
Operating System
PHP Version7.0.0rc7

Activities

derick

2015-11-29 20:38

administrator   ~0003271

This patch is going to be needed:

{code}
diff --git a/xdebug_code_coverage.c b/xdebug_code_coverage.c
index 9b4c2f9..fe5d9ee 100644
--- a/xdebug_code_coverage.c
+++ b/xdebug_code_coverage.c
@@ -580,10 +580,11 @@ static int xdebug_find_jump(zend_op_array opa, unsigned int position, long jmp
} else if (opcode.opcode == ZEND_JMPZNZ) {
#if PHP_VERSION_ID >= 70000
jmp1 = XDEBUG_ZNODE_JMP_LINE(opcode.op2, position, base_address) sizeof(zend_op);

  • jmp2 = position + (opcode.extended_value / sizeof(zend_op));
    #else
    jmp1 = XDEBUG_ZNODE_ELEM(opcode.op2, opline_num);
    -#endif
    *jmp2 = opcode.extended_value;
    +#endif
    return 1;
    #if PHP_VERSION_ID < 70000
    } else if (opcode.opcode == ZEND_BRK || opcode.opcode == ZEND_CONT) {
    {code}