forked from Imagelibrary/binutils-gdb
gdb/
* breakpoint.c (watch_command_1): Get a pointer of the lazy version of the expression's value, even if reading the value from memory fails. When creating a -location watchpoint, get the value's address from the lazy value pointer. gdb/testsuite/ * gdb.base/watchpoint.exp: Test "watch -location" with an innacessible location.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2010-11-09 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* breakpoint.c (watch_command_1): Get a pointer of the lazy
|
||||
version of the expression's value, even if reading the value from
|
||||
memory fails. When creating a -location watchpoint, get the
|
||||
value's address from the lazy value pointer.
|
||||
|
||||
2010-11-07 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* infrun.c (restore_inferior_thread_state): Use
|
||||
|
||||
@@ -8022,7 +8022,7 @@ watch_command_1 (char *arg, int accessflag, int from_tty, int just_location)
|
||||
struct breakpoint *b, *scope_breakpoint = NULL;
|
||||
struct expression *exp;
|
||||
struct block *exp_valid_block = NULL, *cond_exp_valid_block = NULL;
|
||||
struct value *val, *mark;
|
||||
struct value *val, *mark, *result;
|
||||
struct frame_info *frame;
|
||||
char *exp_start = NULL;
|
||||
char *exp_end = NULL;
|
||||
@@ -8121,12 +8121,12 @@ watch_command_1 (char *arg, int accessflag, int from_tty, int just_location)
|
||||
|
||||
exp_valid_block = innermost_block;
|
||||
mark = value_mark ();
|
||||
fetch_subexp_value (exp, &pc, &val, NULL, NULL);
|
||||
fetch_subexp_value (exp, &pc, &val, &result, NULL);
|
||||
|
||||
if (just_location)
|
||||
{
|
||||
exp_valid_block = NULL;
|
||||
val = value_addr (val);
|
||||
val = value_addr (result);
|
||||
release_value (val);
|
||||
value_free_to_mark (mark);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
2010-11-09 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* gdb.base/watchpoint.exp: Test "watch -location" with an
|
||||
innacessible location.
|
||||
|
||||
2010-11-09 Edjunior Machado <emachado@br.ibm.com>
|
||||
Luis Machado <luisgpm@br.ibm.com>
|
||||
|
||||
|
||||
@@ -683,6 +683,11 @@ proc test_inaccessible_watchpoint {} {
|
||||
"$watchpoint_msg \[0-9\]+: \\*\\(int \\*\\) 0"
|
||||
delete_breakpoints
|
||||
|
||||
# The same, but using -location through an indirection.
|
||||
gdb_test "watch -location *global_ptr" \
|
||||
"$watchpoint_msg \[0-9\]+: \-location: \\*global_ptr"
|
||||
delete_breakpoints
|
||||
|
||||
# This step requires two HW watchpoints. Since PPC Server only has
|
||||
# a single one, it will use a SW watchpoint in this case.
|
||||
if [istarget powerpc64-*] {
|
||||
|
||||
Reference in New Issue
Block a user