diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 134f7b4c6de..7d061c807cb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-12-08 Yao Qi + + * breakpoint.c (update_watchpoint): Call + address_significant. + 2017-12-08 Yao Qi * breakpoint.c (adjust_breakpoint_address): Call diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 1cee730cc6f..b68718d2505 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -1864,7 +1864,7 @@ update_watchpoint (struct watchpoint *b, int reparse) loc->gdbarch = get_type_arch (value_type (v)); loc->pspace = frame_pspace; - loc->address = addr; + loc->address = address_significant (loc->gdbarch, addr); if (bitsize != 0) { diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 17fbe4f939f..53a2ca4727f 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-12-08 Yao Qi + + * gdb.arch/aarch64-tagged-pointer.c (main): Update. + * gdb.arch/aarch64-tagged-pointer.exp: Add tests for watchpoint. + 2017-12-08 Yao Qi * gdb.arch/aarch64-tagged-pointer.c (main): Update. diff --git a/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c b/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c index 9bfe41e1298..5754785f3c0 100644 --- a/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c +++ b/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c @@ -53,4 +53,5 @@ main (void) } sp1->i = 8765; + i = 1; } diff --git a/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp b/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp index fcab1b76d94..c08993ea8d5 100644 --- a/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp +++ b/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp @@ -89,3 +89,17 @@ foreach_with_prefix bptype {"hbreak" "break"} { gdb_test "up" "\\(\*func_ptr\\) \\(\\).*" "caller is *func_ptr" delete_breakpoints } + +gdb_test "down" +gdb_test "finish" +# Watch on tagged pointer. +gdb_test "watch *sp2" +gdb_test "continue" \ + "Continuing\\..*Hardware watchpoint \[0-9\]+.*" \ + "run until watchpoint on s1" +delete_breakpoints + +gdb_test "watch *p2" +gdb_test "continue" \ + "Continuing\\..*Hardware watchpoint \[0-9\]+.*" \ + "run until watchpoint on i"