mirror of
https://github.com/php/php-src.git
synced 2024-11-28 12:26:37 +08:00
Shrink phpdbg opcode dump output a bit more
This commit is contained in:
parent
0381c1b79e
commit
5f10e84208
@ -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: {
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user