diff options
author | Pierre Muller <muller@sourceware.org> | 2002-08-30 07:14:19 +0000 |
---|---|---|
committer | Pierre Muller <muller@sourceware.org> | 2002-08-30 07:14:19 +0000 |
commit | c860120cadb5f04d1b6321149674bde7c39f1ee1 (patch) | |
tree | cdf78ac9bdd1bdf28e34fab07772d68695d03d70 | |
parent | c7612d53196a8b287ff54bdfd0ce8429e31738db (diff) | |
download | gdb-c860120cadb5f04d1b6321149674bde7c39f1ee1.zip gdb-c860120cadb5f04d1b6321149674bde7c39f1ee1.tar.gz gdb-c860120cadb5f04d1b6321149674bde7c39f1ee1.tar.bz2 |
2002-08-30 Pierre Muller <muller@ics.u-strasbg.fr>
* breakpoint.c (breakpoint_init_inferior): Reset the val field of
watchpoints to NULL.
(insert_breakpoints): set val field of watchpoints if NULL.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/breakpoint.c | 22 |
2 files changed, 28 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7d40d33..aea6c45 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2002-08-30 Pierre Muller <muller@ics.u-strasbg.fr> + + * breakpoint.c (breakpoint_init_inferior): Reset the val field of + watchpoints to NULL. + (insert_breakpoints): set val field of watchpoints if NULL. + + 2002-08-29 Jim Blandy <jimb@redhat.com> * symtab.c (lookup_symbol_aux): In the cases where we find a diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index c52b4ba..b88f674 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -738,7 +738,19 @@ insert_breakpoints (void) if (b->enable_state == bp_permanent) /* Permanent breakpoints cannot be inserted or removed. */ continue; - else if (b->type != bp_watchpoint + if ((b->type == bp_watchpoint + || b->type == bp_hardware_watchpoint + || b->type == bp_read_watchpoint + || b->type == bp_access_watchpoint) && (!b->val)) + { + struct value *val; + val = evaluate_expression (b->exp); + release_value (val); + if (VALUE_LAZY (val)) + value_fetch_lazy (val); + b->val = val; + } + if (b->type != bp_watchpoint && b->type != bp_hardware_watchpoint && b->type != bp_read_watchpoint && b->type != bp_access_watchpoint @@ -1566,6 +1578,14 @@ breakpoint_init_inferior (enum inf_context context) /* Likewise for watchpoints on local expressions. */ if (b->exp_valid_block != NULL) delete_breakpoint (b); + if (context == inf_starting) + { + /* Reset val field to force reread of starting value + in insert_breakpoints. */ + if (b->val) + value_free (b->val); + b->val = NULL; + } break; default: /* Likewise for exception catchpoints in dynamic-linked |