forked from Imagelibrary/binutils-gdb
2009-01-07 Pierre Muller <muller@ics.u-strasbg.fr>
Tom Tromey <tromey@redhat.com> PR breakpoints/8079: * breakpoint.c (print_one_breakpoint): Use exp_string field to display expression of watchpoints. (mention): Likewise. (watch_command_1): Remove trailing whitespace from expression. * printcmd.c (struct display) <exp_string>: New field. (display_command): Set exp_string. (free_display): Free exp_string. (clear_displays): Use free_display. (do_one_display): Print exp_string. (display_info): Likewise.
This commit is contained in:
@@ -124,6 +124,8 @@ struct display
|
||||
{
|
||||
/* Chain link to next auto-display item. */
|
||||
struct display *next;
|
||||
/* The expression as the user typed it. */
|
||||
char *exp_string;
|
||||
/* Expression to be evaluated and displayed. */
|
||||
struct expression *exp;
|
||||
/* Item number of this auto-display item. */
|
||||
@@ -1398,6 +1400,7 @@ display_command (char *exp, int from_tty)
|
||||
|
||||
new = (struct display *) xmalloc (sizeof (struct display));
|
||||
|
||||
new->exp_string = xstrdup (exp);
|
||||
new->exp = expr;
|
||||
new->block = innermost_block;
|
||||
new->next = display_chain;
|
||||
@@ -1416,6 +1419,7 @@ display_command (char *exp, int from_tty)
|
||||
static void
|
||||
free_display (struct display *d)
|
||||
{
|
||||
xfree (d->exp_string);
|
||||
xfree (d->exp);
|
||||
xfree (d);
|
||||
}
|
||||
@@ -1430,9 +1434,8 @@ clear_displays (void)
|
||||
|
||||
while ((d = display_chain) != NULL)
|
||||
{
|
||||
xfree (d->exp);
|
||||
display_chain = d->next;
|
||||
xfree (d);
|
||||
free_display (d);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1546,7 +1549,7 @@ do_one_display (struct display *d)
|
||||
|
||||
annotate_display_expression ();
|
||||
|
||||
print_expression (d->exp, gdb_stdout);
|
||||
puts_filtered (d->exp_string);
|
||||
annotate_display_expression_end ();
|
||||
|
||||
if (d->format.count != 1 || d->format.format == 'i')
|
||||
@@ -1574,7 +1577,7 @@ do_one_display (struct display *d)
|
||||
|
||||
annotate_display_expression ();
|
||||
|
||||
print_expression (d->exp, gdb_stdout);
|
||||
puts_filtered (d->exp_string);
|
||||
annotate_display_expression_end ();
|
||||
|
||||
printf_filtered (" = ");
|
||||
@@ -1654,7 +1657,7 @@ Num Enb Expression\n"));
|
||||
d->format.format);
|
||||
else if (d->format.format)
|
||||
printf_filtered ("/%c ", d->format.format);
|
||||
print_expression (d->exp, gdb_stdout);
|
||||
puts_filtered (d->exp_string);
|
||||
if (d->block && !contained_in (get_selected_block (0), d->block))
|
||||
printf_filtered (_(" (cannot be evaluated in the current context)"));
|
||||
printf_filtered ("\n");
|
||||
|
||||
Reference in New Issue
Block a user