Revert the following patch (printf tracepoint op) (not approved yet)
2011-02-21 Hui Zhu <teawater@gmail.com> * tracepoint.c (tp_printf): New function. (eval_agent_expr): Handle gdb_agent_op_printf.
This commit is contained in:
parent
4ec7539c26
commit
633ff500c5
2 changed files with 7 additions and 44 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2011-02-24 Joel Brobecker <brobecker@adacore.com>
|
||||||
|
|
||||||
|
Revert the following patch (not approved yet):
|
||||||
|
2011-02-21 Hui Zhu <teawater@gmail.com>
|
||||||
|
* tracepoint.c (tp_printf): New function.
|
||||||
|
(eval_agent_expr): Handle gdb_agent_op_printf.
|
||||||
|
|
||||||
2011-02-21 Hui Zhu <teawater@gmail.com>
|
2011-02-21 Hui Zhu <teawater@gmail.com>
|
||||||
|
|
||||||
* tracepoint.c (tp_printf): New function.
|
* tracepoint.c (tp_printf): New function.
|
||||||
|
|
|
@ -4214,16 +4214,6 @@ gdb_agent_op_name (int op)
|
||||||
return gdb_agent_op_names[op];
|
return gdb_agent_op_names[op];
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
tp_printf (const char *format, ...)
|
|
||||||
{
|
|
||||||
va_list ap;
|
|
||||||
va_start (ap, format);
|
|
||||||
vprintf (format, ap);
|
|
||||||
va_end (ap);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The agent expression evaluator, as specified by the GDB docs. It
|
/* The agent expression evaluator, as specified by the GDB docs. It
|
||||||
returns 0 if everything went OK, and a nonzero error code
|
returns 0 if everything went OK, and a nonzero error code
|
||||||
otherwise. */
|
otherwise. */
|
||||||
|
@ -4583,40 +4573,6 @@ eval_agent_expr (struct tracepoint_hit_ctx *ctx,
|
||||||
agent_tsv_read (tframe, arg);
|
agent_tsv_read (tframe, arg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case gdb_agent_op_printf:
|
|
||||||
{
|
|
||||||
void *argv;
|
|
||||||
arg = aexpr->bytes[pc++];
|
|
||||||
argv = (void *) (unsigned long) top;
|
|
||||||
if (--sp >= 0)
|
|
||||||
top = stack[sp];
|
|
||||||
|
|
||||||
if (arg)
|
|
||||||
{
|
|
||||||
if (strstr ((char *) (aexpr->bytes + pc), "%s"))
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
unsigned char buf[100];
|
|
||||||
|
|
||||||
for (i = 0; i < 100; i++)
|
|
||||||
{
|
|
||||||
agent_mem_read (tframe, buf + i,
|
|
||||||
(CORE_ADDR) ((unsigned long)argv + i),
|
|
||||||
1);
|
|
||||||
if (!buf[i])
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
tp_printf ((char *) (aexpr->bytes + pc), buf);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
tp_printf ((char *) (aexpr->bytes + pc), argv);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
tp_printf ((char *) (aexpr->bytes + pc));
|
|
||||||
pc += strlen ((char *) aexpr->bytes + pc) + 1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* GDB never (currently) generates any of these ops. */
|
/* GDB never (currently) generates any of these ops. */
|
||||||
case gdb_agent_op_float:
|
case gdb_agent_op_float:
|
||||||
case gdb_agent_op_ref_float:
|
case gdb_agent_op_ref_float:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue