Shrink phpdbg opcode dump output a bit more

This commit is contained in:
Bob Weinand 2015-04-20 20:58:52 +02:00
parent 0381c1b79e
commit 5f10e84208
2 changed files with 6 additions and 19 deletions

View File

@ -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: {

View File

@ -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 {