diff options
author | Hui Zhu <teawater@gmail.com> | 2009-04-30 03:09:59 +0000 |
---|---|---|
committer | Hui Zhu <teawater@gmail.com> | 2009-04-30 03:09:59 +0000 |
commit | 96429cc88348ab437aba4dbf80c264351eb0b62d (patch) | |
tree | 5ebbeb66d917f306caa373a85ef3d333cf32fd77 /gdb/infrun.c | |
parent | b7f6bf22997d7ff8b9218e82c90d2e3dfcb08d62 (diff) | |
download | gdb-96429cc88348ab437aba4dbf80c264351eb0b62d.zip gdb-96429cc88348ab437aba4dbf80c264351eb0b62d.tar.gz gdb-96429cc88348ab437aba4dbf80c264351eb0b62d.tar.bz2 |
* infrun.c (use_displaced_stepping): Return false if process
record and replay target is used.
(proceed): Call function "record_not_record_set" if pocess
record and replay target is used.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r-- | gdb/infrun.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c index b9fba6f..5d9cc77 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -48,6 +48,7 @@ #include "gdb_assert.h" #include "mi/mi-common.h" #include "event-top.h" +#include "record.h" /* Prototypes for local functions */ @@ -603,7 +604,8 @@ use_displaced_stepping (struct gdbarch *gdbarch) return (((can_use_displaced_stepping == can_use_displaced_stepping_auto && non_stop) || can_use_displaced_stepping == can_use_displaced_stepping_on) - && gdbarch_displaced_step_copy_insn_p (gdbarch)); + && gdbarch_displaced_step_copy_insn_p (gdbarch) + && !RECORD_IS_USED); } /* Clean out any stray displaced stepping state. */ @@ -2130,6 +2132,10 @@ adjust_pc_after_break (struct execution_control_state *ecs) if (software_breakpoint_inserted_here_p (breakpoint_pc) || (non_stop && moribund_breakpoint_here_p (breakpoint_pc))) { + struct cleanup *old_cleanups = NULL; + if (RECORD_IS_USED) + old_cleanups = record_gdb_operation_disable_set (); + /* When using hardware single-step, a SIGTRAP is reported for both a completed single-step and a software breakpoint. Need to differentiate between the two, as the latter needs adjusting @@ -2153,6 +2159,9 @@ adjust_pc_after_break (struct execution_control_state *ecs) || !currently_stepping (ecs->event_thread) || ecs->event_thread->prev_pc == breakpoint_pc) regcache_write_pc (regcache, breakpoint_pc); + + if (RECORD_IS_USED) + do_cleanups (old_cleanups); } } |