Esempio n. 1
0
/* {{{ dump_op
 */
static void dump_op(zend_op_array *op_array, zend_op *opi, int num, zend_uint base_address)
{
    unsigned int flags, op1_type, op2_type, res_type;
    char *op_result = NULL;
    char *op_op1 = NULL;
    char *op_op2 = NULL;

    TSRMLS_FETCH();

    /* EXT_STMT */
    if (opi->opcode == 101) {
        fprintf(PVT_G(log_file_path), "\t<tr class=\"s\">");
    } else {
        fprintf(PVT_G(log_file_path), "\t<tr>");
    }

    fprintf(PVT_G(log_file_path),
        "<td>%d</td><td>%d</td><td title=\"%d\" class=\"wz\">%s</td>",
        num, opi->lineno, opi->opcode, opname(opi->opcode)
    );

    if (!(opi->PVT_EXTENDED_VALUE(result) & EXT_TYPE_UNUSED)) {
        op_result = format_znode(&opi->result, base_address);
        fprintf(PVT_G(log_file_path),
            "<td>%s</td>", op_result
        );
        if (op_result) {
            efree(op_result);
        }
    } else {
        fprintf(PVT_G(log_file_path), "<td></td>");
    }

    op_op1 = format_znode(&opi->op1, base_address);
    fprintf(PVT_G(log_file_path),
        "<td>%s</td>", op_op1
    );

    if (op_op1) {
        efree(op_op1);
    }

    op_op2 = format_znode(&opi->op2, base_address);
    fprintf(PVT_G(log_file_path),
        "<td>%s</td></tr>\n", op_op2
    );
    if (op_op2) {
        efree(op_op2);
    }
}
Esempio n. 2
0
void dump_op(zend_op *op, int num){
	static char buffer_op1[BUFFER_LEN];
	static char buffer_op2[BUFFER_LEN];
	static char buffer_result[BUFFER_LEN];
    format_znode(&op->op1, buffer_op1);
    format_znode(&op->op2, buffer_op2);
    format_znode(&op->result, buffer_result);
	printf("%6d|%6d|%20s|%50s|%10s|%10s|%6s|\n", num, op->lineno,
			opname(op->opcode),
            get_handler(op),
			buffer_op1,
			buffer_op2,
			buffer_result
            ) ;
}