@@ -2608,17 +2585,18 @@ agent_eval_command_one (char *exp, int eval, CORE_ADDR pc)
struct cleanup *old_chain = 0;
struct expression *expr;
struct agent_expr *agent;
+ int trace_string = 0;
if (!eval)
{
- trace_string_kludge = 0;
if (*exp == '/')
- exp = decode_agent_options (exp);
+ exp = decode_agent_options (exp, &trace_string);
}
if (!eval && strcmp (exp, "$_ret") == 0)
{
- agent = gen_trace_for_return_address (pc, get_current_arch ());
+ agent = gen_trace_for_return_address (pc, get_current_arch (),
+ trace_string);
old_chain = make_cleanup_free_agent_expr (agent);
}
else
@@ -2626,9 +2604,9 @@ agent_eval_command_one (char *exp, int eval, CORE_ADDR pc)
expr = parse_exp_1 (&exp, pc, block_for_pc (pc), 0);
old_chain = make_cleanup (free_current_contents, &expr);
if (eval)
- agent = gen_eval_for_expr (pc, expr);
+ agent = gen_eval_for_expr (pc, expr, trace_string);