PR macros/7961:

* varobj.c (varobj_create): Update.
	(varobj_set_value): Update.
	* tracepoint.c (validate_actionline): Update.
	(encode_actions_1): Update.
	* parse.c (parse_exp_1): Add 'pc' argument.
	(parse_exp_in_context): Add 'pc' argument.  Change how
	expression_context_pc is set.
	(parse_expression): Update.
	(parse_field_expression): Update.
	* expression.h (parse_exp_1): Update.
	* eval.c (parse_to_comma_and_eval): Update.
	* breakpoint.c (set_breakpoint_condition): Update.
	(update_watchpoint): Update.
	(init_breakpoint_sal): Update
	(find_condition_and_thread): Update.
	(watch_command_1): Update.
	(update_breakpoint_locations): Update.
	* ada-lang.c (ada_read_renaming_var_value): Update.
	(create_excep_cond_exprs): Update.
testsuite
	* gdb.base/macscp1.c (macscp_expr): Add breakpoint comment.
	* gdb.base/macscp.exp (maybe_kfail): Add test for macro scope.
This commit is contained in:
Tom Tromey
2012-06-27 18:08:41 +00:00
parent c83ee9021b
commit 1bb9788dbb
11 changed files with 84 additions and 30 deletions

View File

@ -624,6 +624,7 @@ varobj_create (char *objname,
enum varobj_languages lang;
struct value *value = NULL;
volatile struct gdb_exception except;
CORE_ADDR pc;
/* Parse and evaluate the expression, filling in as much of the
variable's data as possible. */
@ -650,9 +651,13 @@ varobj_create (char *objname,
if (type == USE_SELECTED_FRAME)
var->root->floating = 1;
pc = 0;
block = NULL;
if (fi != NULL)
block = get_frame_block (fi, 0);
{
block = get_frame_block (fi, 0);
pc = get_frame_pc (fi);
}
p = expression;
innermost_block = NULL;
@ -660,7 +665,7 @@ varobj_create (char *objname,
return a sensible error. */
TRY_CATCH (except, RETURN_MASK_ERROR)
{
var->root->exp = parse_exp_1 (&p, block, 0);
var->root->exp = parse_exp_1 (&p, pc, block, 0);
}
if (except.reason < 0)
@ -1471,7 +1476,7 @@ varobj_set_value (struct varobj *var, char *expression)
gdb_assert (varobj_editable_p (var));
input_radix = 10; /* ALWAYS reset to decimal temporarily. */
exp = parse_exp_1 (&s, 0, 0);
exp = parse_exp_1 (&s, 0, 0, 0);
TRY_CATCH (except, RETURN_MASK_ERROR)
{
value = evaluate_expression (exp);