mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 09:08:59 +00:00
Revert the following change (not approved yet):
2011-02-21 Hui Zhu <teawater@gmail.com> * Makefile.in (HFILES_NO_SRCDIR): Add printcmd.h. * ax-gdb.c (gen_printf_expr_callback): New function. * ax-gdb.h (gen_printf_expr_callback): Forward declare. * ax-general.c (ax_memcpy): New function. (ax_print): Handle "printf". (ax_reqs): Ditto. * ax.h (ax_memcpy): Forward declare. * common/ax.def (invalid2): Removed. (printf): New entry. * printcmd.c (printcmd.h): New include. (string_printf): New function. (ui_printf): Removed. (printf_command): Remove static. Call string_printf. (eval_command): Call string_printf. * printcmd.h: New file. * tracepoint.c (validate_actionline, encode_actions_1): handle printf_command.
This commit is contained in:
@@ -331,14 +331,6 @@ ax_tsv (struct agent_expr *x, enum agent_op op, int num)
|
||||
x->buf[x->len + 2] = (num) & 0xff;
|
||||
x->len += 3;
|
||||
}
|
||||
|
||||
void
|
||||
ax_memcpy (struct agent_expr *x, const void *src, size_t n)
|
||||
{
|
||||
grow_expr (x, n);
|
||||
memcpy (x->buf + x->len, src, n);
|
||||
x->len += n;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -377,7 +369,6 @@ ax_print (struct ui_file *f, struct agent_expr *x)
|
||||
for (i = 0; i < x->len;)
|
||||
{
|
||||
enum agent_op op = x->buf[i];
|
||||
int op_size;
|
||||
|
||||
if (op >= (sizeof (aop_map) / sizeof (aop_map[0]))
|
||||
|| !aop_map[op].name)
|
||||
@@ -386,19 +377,7 @@ ax_print (struct ui_file *f, struct agent_expr *x)
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
if (op == aop_printf)
|
||||
{
|
||||
if (i + 2 >= x->len)
|
||||
{
|
||||
fprintf_filtered (f, _("%3d <bad opcode %02x>\n"), i, op);
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
op_size = 1 + strlen (x->buf + i + 2) + 1;
|
||||
}
|
||||
else
|
||||
op_size = aop_map[op].op_size;
|
||||
if (i + 1 + op_size > x->len)
|
||||
if (i + 1 + aop_map[op].op_size > x->len)
|
||||
{
|
||||
fprintf_filtered (f, _("%3d <incomplete opcode %s>\n"),
|
||||
i, aop_map[op].name);
|
||||
@@ -406,15 +385,15 @@ ax_print (struct ui_file *f, struct agent_expr *x)
|
||||
}
|
||||
|
||||
fprintf_filtered (f, "%3d %s", i, aop_map[op].name);
|
||||
if (op_size > 0)
|
||||
if (aop_map[op].op_size > 0)
|
||||
{
|
||||
fputs_filtered (" ", f);
|
||||
|
||||
print_longest (f, 'd', 0,
|
||||
read_const (x, i + 1, op_size));
|
||||
read_const (x, i + 1, aop_map[op].op_size));
|
||||
}
|
||||
fprintf_filtered (f, "\n");
|
||||
i += 1 + op_size;
|
||||
i += 1 + aop_map[op].op_size;
|
||||
|
||||
is_float = (op == aop_float);
|
||||
}
|
||||
@@ -482,8 +461,6 @@ ax_reqs (struct agent_expr *ax)
|
||||
/* Pointer to a description of the present op. */
|
||||
struct aop_map *op;
|
||||
|
||||
int op_size = 0, consumed = 0;
|
||||
|
||||
memset (targets, 0, ax->len * sizeof (targets[0]));
|
||||
memset (boundary, 0, ax->len * sizeof (boundary[0]));
|
||||
|
||||
@@ -491,7 +468,7 @@ ax_reqs (struct agent_expr *ax)
|
||||
ax->flaw = agent_flaw_none;
|
||||
ax->max_data_size = 0;
|
||||
|
||||
for (i = 0; i < ax->len; i += 1 + op_size)
|
||||
for (i = 0; i < ax->len; i += 1 + op->op_size)
|
||||
{
|
||||
if (ax->buf[i] > (sizeof (aop_map) / sizeof (aop_map[0])))
|
||||
{
|
||||
@@ -507,23 +484,7 @@ ax_reqs (struct agent_expr *ax)
|
||||
return;
|
||||
}
|
||||
|
||||
if (ax->buf[i] == aop_printf)
|
||||
{
|
||||
if (i + 2 >= ax->len)
|
||||
{
|
||||
ax->flaw = agent_flaw_incomplete_instruction;
|
||||
return;
|
||||
}
|
||||
consumed = ax->buf[i + 1];
|
||||
op_size = 1 + strlen (ax->buf + i + 2) + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
op_size = op->op_size;
|
||||
consumed = op->consumed;
|
||||
}
|
||||
|
||||
if (i + 1 + op_size > ax->len)
|
||||
if (i + 1 + op->op_size > ax->len)
|
||||
{
|
||||
ax->flaw = agent_flaw_incomplete_instruction;
|
||||
return;
|
||||
@@ -541,7 +502,7 @@ ax_reqs (struct agent_expr *ax)
|
||||
boundary[i] = 1;
|
||||
heights[i] = height;
|
||||
|
||||
height -= consumed;
|
||||
height -= op->consumed;
|
||||
if (height < ax->min_height)
|
||||
ax->min_height = height;
|
||||
height += op->produced;
|
||||
|
||||
Reference in New Issue
Block a user