/* {{{ 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); } }
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 ) ; }