From 5f10e84208c259a55db96789e9cbdf7e6af596a2 Mon Sep 17 00:00:00 2001 From: Bob Weinand Date: Mon, 20 Apr 2015 20:58:52 +0200 Subject: [PATCH] Shrink phpdbg opcode dump output a bit more --- sapi/phpdbg/phpdbg_opcode.c | 21 ++++----------------- sapi/phpdbg/phpdbg_print.c | 4 ++-- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/sapi/phpdbg/phpdbg_opcode.c b/sapi/phpdbg/phpdbg_opcode.c index 9622fd661b..654bd6288f 100644 --- a/sapi/phpdbg/phpdbg_opcode.c +++ b/sapi/phpdbg/phpdbg_opcode.c @@ -27,28 +27,15 @@ ZEND_EXTERN_MODULE_GLOBALS(phpdbg); -static inline uint32_t phpdbg_decode_literal(zend_op_array *ops, zval *literal) /* {{{ */ -{ - int iter = 0; - - while (iter < ops->last_literal) { - if (literal == &ops->literals[iter]) { - return iter; - } - iter++; - } - - return 0; -} /* }}} */ - static inline char *phpdbg_decode_op(zend_op_array *ops, znode_op *op, uint32_t type, HashTable *vars) /* {{{ */ { char *decode = NULL; switch (type &~ EXT_TYPE_UNUSED) { - case IS_CV: - asprintf(&decode, "$%s", ops->vars[EX_VAR_TO_NUM(op->var)]->val); - break; + case IS_CV: { + zend_string *var = ops->vars[EX_VAR_TO_NUM(op->var)]; + asprintf(&decode, "$%.*s%c", var->len <= 19 ? (int) var->len : 18, var->val, var->len <= 19 ? 0 : '+'); + } break; case IS_VAR: case IS_TMP_VAR: { diff --git a/sapi/phpdbg/phpdbg_print.c b/sapi/phpdbg/phpdbg_print.c index ffd22859af..c1cea6ede0 100644 --- a/sapi/phpdbg/phpdbg_print.c +++ b/sapi/phpdbg/phpdbg_print.c @@ -85,10 +85,10 @@ static inline void phpdbg_print_function_helper(zend_function *method) /* {{{ */ do { char *decode = phpdbg_decode_opline(op_array, opline, &vars); if (decode != NULL) { - phpdbg_writeln("print", "line=\"%u\" opnum=\"%u\" opcode=\"%s\" op=\"%s\"", " L%-5u #%-5u %-36s %s", + phpdbg_writeln("print", "line=\"%u\" opnum=\"%u\" opcode=\"%s\" op=\"%s\"", " L%-4u #%-5u %-23s %s", opline->lineno, opcode, - phpdbg_decode_opcode(opline->opcode), + phpdbg_decode_opcode(opline->opcode) + 5, /* remove ZEND_ prefix */ decode); free(decode); } else { -- 2.40.0