Clear addr bit in next_pcs vector

This patch is to split the loop of calling gdbarch_addr_bits_remove
and insert_single_step_breakpoint into two loops.

gdb:

2016-11-08  Yao Qi  <yao.qi@linaro.org>

	* arm-linux-tdep.c (arm_linux_software_single_step): Write
	adjusted address back to vector.  Call insert_single_step_breakpoint
	in a new loop.
	* arm-tdep.c (arm_software_single_step): Likewise.
This commit is contained in:
Yao Qi
2016-11-08 12:58:33 +00:00
parent 771da62d67
commit 0bc5d801ec
3 changed files with 15 additions and 2 deletions

View File

@@ -6310,9 +6310,12 @@ arm_software_single_step (struct frame_info *frame)
for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); i++)
{
pc = gdbarch_addr_bits_remove (gdbarch, pc);
insert_single_step_breakpoint (gdbarch, aspace, pc);
VEC_replace (CORE_ADDR, next_pcs, i, pc);
}
for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); i++)
insert_single_step_breakpoint (gdbarch, aspace, pc);
do_cleanups (old_chain);
return 1;