diff options
author | Bob Weinand <bobwei9@hotmail.com> | 2016-07-11 23:28:14 +0200 |
---|---|---|
committer | Bob Weinand <bobwei9@hotmail.com> | 2016-07-11 23:58:20 +0200 |
commit | b00376884e00aa04614dd650e119aad653c1f16b (patch) | |
tree | 9531526edb549ef5eae6ada0d6a6969dfe085e46 /Zend/zend.c | |
parent | 1223f7f91b63d37c1282c05c0fab5a16bc83bbf1 (diff) | |
download | php-git-b00376884e00aa04614dd650e119aad653c1f16b.tar.gz |
Rewrite watchpoints to be much more stable
This mainly involves a separate abstraction layer for elements (e.g. $a->b) and watchpoints (on pointer of the Bucket for example).
Also better comparison handling (value backup vs. page dumps).
It is not yet finished (there are sometimes false positives announced and names not yet perfect), but the functionality is working and not crashing as far as I have tested.
Future scope is also relative watchpoints, e.g. "w $this->val expression()" which does not have the symbol tables as basis, but the value (in this example: return value of expression()) as basis.
Diffstat (limited to 'Zend/zend.c')
-rw-r--r-- | Zend/zend.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Zend/zend.c b/Zend/zend.c index 91f5cd6966..118bd6c496 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -300,6 +300,9 @@ ZEND_API void zend_print_flat_zval_r(zval *expr) /* {{{ */ ZEND_PUTS(")"); break; } + case IS_REFERENCE: + zend_print_flat_zval_r(Z_REFVAL_P(expr)); + break; default: zend_print_variable(expr); break; @@ -355,6 +358,9 @@ static void zend_print_zval_r_to_buf(smart_str *buf, zval *expr, int indent) /* case IS_LONG: smart_str_append_long(buf, Z_LVAL_P(expr)); break; + case IS_REFERENCE: + zend_print_zval_r_to_buf(buf, Z_REFVAL_P(expr), indent); + break; default: { zend_string *str = zval_get_string(expr); |