summaryrefslogtreecommitdiff
path: root/gdb/record.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/record.c')
-rw-r--r--gdb/record.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gdb/record.c b/gdb/record.c
index 191cb3e5395..fec545f7ded 100644
--- a/gdb/record.c
+++ b/gdb/record.c
@@ -513,6 +513,14 @@ record_wait (ptid_t ptid, struct target_waitstatus *status)
"Process record: break at 0x%s.\n",
paddr_nz (tmp_pc));
}
+ if (gdbarch_decr_pc_after_break (get_regcache_arch (regcache))
+ && !record_resume_step)
+ {
+ regcache_write_pc (regcache,
+ tmp_pc +
+ gdbarch_decr_pc_after_break
+ (get_regcache_arch (regcache)));
+ }
goto replay_out;
}
}
@@ -655,6 +663,15 @@ record_wait (ptid_t ptid, struct target_waitstatus *status)
"Process record: break at 0x%s.\n",
paddr_nz (tmp_pc));
}
+ if (gdbarch_decr_pc_after_break (get_regcache_arch (regcache))
+ && execution_direction == EXEC_FORWARD
+ && !record_resume_step)
+ {
+ regcache_write_pc (regcache,
+ tmp_pc +
+ gdbarch_decr_pc_after_break
+ (get_regcache_arch (regcache)));
+ }
continue_flag = 0;
}
}