diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-08-16 19:53:05 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-08-16 19:53:05 +0000 |
commit | d63d0675b66c96510a519c93795e3ba3b074e979 (patch) | |
tree | 4cf2de24b43b11f04afc1b378afdc08811d6ce51 /gdb | |
parent | 06a64a0b786b2a3b81e8caced730c43939a78684 (diff) | |
download | gdb-d63d0675b66c96510a519c93795e3ba3b074e979.zip gdb-d63d0675b66c96510a519c93795e3ba3b074e979.tar.gz gdb-d63d0675b66c96510a519c93795e3ba3b074e979.tar.bz2 |
gdb/
* breakpoint.c (update_watchpoint): Add source empty line. Prefer
EXP_STRING_REPARSE to EXP_STRING.
(watch_command_1): Set also EXP_STRING_REPARSE.
(delete_breakpoint): Free also EXP_STRING_REPARSE.
* breakpoint.h (struct breakpoint): New field exp_string_reparse.
Update comment for exp_string.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/breakpoint.c | 11 | ||||
-rw-r--r-- | gdb/breakpoint.h | 5 |
3 files changed, 21 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 78296e8..a800d84 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2010-08-16 Jan Kratochvil <jan.kratochvil@redhat.com> + + * breakpoint.c (update_watchpoint): Add source empty line. Prefer + EXP_STRING_REPARSE to EXP_STRING. + (watch_command_1): Set also EXP_STRING_REPARSE. + (delete_breakpoint): Free also EXP_STRING_REPARSE. + * breakpoint.h (struct breakpoint): New field exp_string_reparse. + Update comment for exp_string. + 2010-08-16 Tom Tromey <tromey@redhat.com> * value.c (release_value): Clear 'next' pointer. diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 212c203..4ed3c31 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -1339,12 +1339,13 @@ update_watchpoint (struct breakpoint *b, int reparse) if (within_current_scope && reparse) { char *s; + if (b->exp) { xfree (b->exp); b->exp = NULL; } - s = b->exp_string; + s = b->exp_string_reparse ? b->exp_string_reparse : b->exp_string; b->exp = parse_exp_1 (&s, b->exp_valid_block, 0); /* If the meaning of expression itself changed, the old value is no longer relevant. We don't want to report a watchpoint hit @@ -8211,10 +8212,13 @@ watch_command_1 (char *arg, int accessflag, int from_tty, int just_location) t = check_typedef (TYPE_TARGET_TYPE (check_typedef (t))); name = type_to_string (t); - b->exp_string = xstrprintf ("* (%s *) %s", name, - core_addr_to_string (addr)); + b->exp_string_reparse = xstrprintf ("* (%s *) %s", name, + core_addr_to_string (addr)); xfree (name); + b->exp_string = xstrprintf ("-location: %.*s", + (int) (exp_end - exp_start), exp_start); + /* The above expression is in C. */ b->language = language_c; } @@ -9658,6 +9662,7 @@ delete_breakpoint (struct breakpoint *bpt) xfree (bpt->addr_string); xfree (bpt->exp); xfree (bpt->exp_string); + xfree (bpt->exp_string_reparse); value_free (bpt->val); xfree (bpt->source_file); xfree (bpt->exec_pathname); diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h index 18dfe22..155a6d4 100644 --- a/gdb/breakpoint.h +++ b/gdb/breakpoint.h @@ -450,8 +450,11 @@ struct breakpoint /* String form of the breakpoint condition (malloc'd), or NULL if there is no condition. */ char *cond_string; - /* String form of exp (malloc'd), or NULL if none. */ + /* String form of exp to use for displaying to the user (malloc'd), or + NULL if none. */ char *exp_string; + /* String form to use for reparsing of EXP (malloc'd) or NULL. */ + char *exp_string_reparse; /* The expression we are watching, or NULL if not a watchpoint. */ struct expression *exp; |