[GDBserver] Use regcache_read_pc in install_software_single_step_breakpoints
authorYao Qi <yao.qi@linaro.org>
Tue, 26 Jan 2016 14:08:26 +0000 (14:08 +0000)
committerYao Qi <yao.qi@linaro.org>
Tue, 26 Jan 2016 14:08:26 +0000 (14:08 +0000)
In install_software_single_step_breakpoints, we've got the regcache
of current_thread, so we don't have to bother get_pc to get pc,
instead we can get pc from regcache directly.  Note that the callers
of install_software_single_step_breakpoints have already switched
current_thread to LWP.

Since the pc is got from regcache_read_pc, in the next patch, we can
get pc inside the implementation of *the_low_target.get_next_pcs and
stop passing pc to *the_low_target.get_next_pcs.

gdb/gdbserver:

2016-01-26  Yao Qi  <yao.qi@linaro.org>

* linux-low.c (install_software_single_step_breakpoints): Call
regcache_read_pc instead of get_pc.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c

index 0ba902e..8c1677d 100644 (file)
@@ -1,5 +1,10 @@
 2016-01-26  Yao Qi  <yao.qi@linaro.org>
 
+       * linux-low.c (install_software_single_step_breakpoints): Call
+       regcache_read_pc instead of get_pc.
+
+2016-01-26  Yao Qi  <yao.qi@linaro.org>
+
        * remote-utils.c (remote_close) [!USE_WIN32API]: Ignore SIGIO.
        (unblock_async_io): Rename to ...
        (block_unblock_async_io): ... it.  New function.
index 1f3fc08..b35b569 100644 (file)
@@ -4103,7 +4103,8 @@ install_software_single_step_breakpoints (struct lwp_info *lwp)
   VEC (CORE_ADDR) *next_pcs = NULL;
   struct cleanup *old_chain = make_cleanup (VEC_cleanup (CORE_ADDR), &next_pcs);
 
-  pc = get_pc (lwp);
+  pc = regcache_read_pc (regcache);
+
   next_pcs = (*the_low_target.get_next_pcs) (pc, regcache);
 
   for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); ++i)